真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

shell腳本知識(shí)-創(chuàng)新互聯(lián)

1.Shell

成都創(chuàng)新互聯(lián)公司專注于賓川網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供賓川營(yíng)銷型網(wǎng)站建設(shè),賓川網(wǎng)站制作、賓川網(wǎng)頁(yè)設(shè)計(jì)、賓川網(wǎng)站官網(wǎng)定制、重慶小程序開(kāi)發(fā)服務(wù),打造賓川網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供賓川網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

   Shell的作用是解釋執(zhí)行用戶的命令,用戶輸入一條命令,Shell就解釋執(zhí)行一條,這種方式

稱為交互式(Interactive),Shell還有一種執(zhí)行命令的方式稱為批處理(Batch),用戶事先寫(xiě)一 個(gè)Shell腳本(Script),其中有很多條命令,讓Shell一次把這些命令執(zhí)行完,而不必一條

一條地敲命令。Shell腳本和編程語(yǔ)言很相似,也有變量和流程控制語(yǔ)句,但Shell腳本是解釋

執(zhí)行的,不需要編譯,Shell程序從腳本中一行一行讀取并執(zhí)行這些命令,相當(dāng)于一個(gè)用戶把

腳本中的命令一行一 行敲到Shell提示符下執(zhí)行。

shell腳本是一個(gè)文本文件,不能被操作系統(tǒng)識(shí)別,但是可以執(zhí)行,是因?yàn)橛兄虚g解釋器。

運(yùn)行shell腳本時(shí)先加載解釋器,解釋器讀取文本參數(shù)進(jìn)行運(yùn)行。

shell運(yùn)行原理:

   1.命令中轉(zhuǎn)(創(chuàng)建子進(jìn)程,分析執(zhí)行,返回結(jié)果)

   2.創(chuàng)建進(jìn)程完成任務(wù)

   3.父進(jìn)程不受子進(jìn)程錯(cuò)誤影響

運(yùn)行過(guò)程

shell腳本知識(shí)

test.sh將其內(nèi)容以命令行參數(shù)傳遞給子bash,子bash再fork孫bash執(zhí)行命令,將結(jié)果返回給子bash。

shell腳本:

 1 #!/bin/bash

2

3 echo "hello bit"

在腳本中第一行必須為:告知解釋器及版本,#!

運(yùn)行shell腳本的方法:

1> bash或sh+文件名.sh

2>/bin/bash或sh+文件名.sh

3>chmod u+x test.sh 后直接運(yùn)行./test.sh

shell腳本知識(shí)

cd與export 是比較特殊的命令,不會(huì)創(chuàng)建子進(jìn)程,直接在當(dāng)前環(huán)境下運(yùn)行,這類命令被稱為內(nèi)置命令。

舉個(gè)例子:

1    #!/bin/bash

4    sleep 1

5    pwd

6    sleep 1

7    cd ..

8    sleep 1

9    pwd

10

  每隔一秒依次執(zhí)行命令

  結(jié)果:

shell腳本知識(shí)


   還有一個(gè) .表示當(dāng)前路徑,由當(dāng)前的bash解釋命令。

2.shell變量可以分為環(huán)境變量和本地變量

 環(huán)境變量可以從父進(jìn)程傳給子進(jìn)程,本地變量只存在于當(dāng)前shell進(jìn)程。

 printenv顯示環(huán)境變量,set設(shè)置本地變量和環(huán)境變量,環(huán)境變量是任何進(jìn)程都有的,而本地變量是shell特有的。

3.eval

 eval命令將會(huì)首先掃描命令行進(jìn)行所有的置換,然后再執(zhí)行該命令。該命令適用于那些一次掃描無(wú)法實(shí)現(xiàn)其功能的變量。該命令對(duì)變量進(jìn)行兩次掃描。這些需要進(jìn)行兩次掃描的變量有時(shí)被稱為復(fù)雜變量。不過(guò)這些變量本身并不復(fù)雜。e v a l命令也可以用于回顯簡(jiǎn)單變量,不一定是復(fù)雜變量。

例子:

1>顯示test.sh內(nèi)容

shell腳本知識(shí)

從結(jié)果看出使用eval命令不但可以置換該變量,還能夠執(zhí)行相應(yīng)的命令。第一次掃描進(jìn)行了file變量置換,第二次掃描執(zhí)行了該字符串中所包含的命令cat test.sh。

2>還可以用來(lái)顯示出傳遞給腳本的最后一個(gè)參數(shù)

在test.sh 腳本中寫(xiě)入 eval echo  \$$#, 運(yùn)行test.sh。結(jié)果如下:

 shell腳本知識(shí)

3>.給每個(gè)值一個(gè)變量名

希望一個(gè)文件中的第一列成為變量名,第二列成為該變量的值

打開(kāi)一個(gè)test寫(xiě)入

name dandan

age   21

在file.sh中寫(xiě)入

1 #!/bin/bash

2

3 while read NAME VALUE

4 do

5 eval "${NAME}=${VALUE}"

6 done

7 echo "$name $age"

運(yùn)行file.sh,結(jié)果如下:

shell腳本知識(shí)

4>用eval命令創(chuàng)建指向變量的“指針"

shell腳本知識(shí)

4.  ``與$()的區(qū)別和聯(lián)系

舉一個(gè)例子:

1. 1 #!/bin/bash

2

3 echo `echo \$HOSTNAME`

4 echo $(echo \$HOSTNAME)

我們可以使用sh -x test.sh來(lái)分析bash是如何來(lái)解釋這個(gè)腳本的,返回的信息如下:

shell腳本知識(shí)

1>反引號(hào)中\(zhòng)$并沒(méi)有將$的特殊意義轉(zhuǎn)換 反引號(hào)包含的內(nèi)容 echo \$hostname 仍然被解釋

為一個(gè)echo $HOSTNAME 取到了這個(gè)變量的值并輸出所以反引號(hào)返回的值為 localhost

2>$()則正好相反,$明顯被\轉(zhuǎn)義成了一個(gè)普通字符,所以并沒(méi)有取到變量值,而是返回了

字符串本身的意思,故而返回了$HOSTNAME。

  這說(shuō)明反引號(hào)對(duì)反斜杠(\)有特殊的轉(zhuǎn)化,至少我們看到當(dāng)我們直接用1個(gè)\時(shí),它本身

并不會(huì)起到轉(zhuǎn)義的作用。

2.再給程序中多加一個(gè)\,運(yùn)行結(jié)果:

shell腳本知識(shí)

這次結(jié)果與上次運(yùn)行結(jié)果差不多正好相反。

反引號(hào)反而輸出了$HOSTNAME的字面意思

$()如我們所愿的取到了變量值,并理所應(yīng)當(dāng)?shù)妮敵隽艘粋€(gè)被轉(zhuǎn)義的字符串\

3.若將代碼改為

echo `echo \\\\`

echo $(echo \\\\)

運(yùn)行結(jié)果:

shell腳本知識(shí)


4.若將代碼改為

echo `echo \\\\\\\\`

echo $(echo \\\\\\\\)

運(yùn)行結(jié)果:

shell腳本知識(shí)

由以上測(cè)試得出結(jié)論:

  反引號(hào)其本身就對(duì)\進(jìn)行了轉(zhuǎn)義,保留了其本身意思,如果我們想在反引號(hào)中起到\的特殊意義,我們必須使用2個(gè)\來(lái)進(jìn)行表示。

所以我們可以簡(jiǎn)單的想象成反引號(hào)中: \\ = \

  1. $()中則不需要考慮\的問(wèn)題,與我們平常使用的一樣:\ = \

不過(guò)一般情況下使用$()。

5.crond定時(shí)任務(wù)

crond 是linux用來(lái)定期執(zhí)行程序的命令。當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此任務(wù)調(diào)度命令。crond命令每分鍾會(huì)定期檢查是否有要執(zhí)行的工作,如果有要執(zhí)行的工作便會(huì)自動(dòng)執(zhí)行該工作。而linux任務(wù)調(diào)度的工作主要分為以下兩類:

1、系統(tǒng)執(zhí)行的工作:系統(tǒng)周期性所要執(zhí)行的工作,如備份系統(tǒng)數(shù)據(jù)、清理緩存

2、個(gè)人執(zhí)行的工作:某個(gè)用戶定期要做的工作,例如每隔10分鐘檢查郵件服務(wù)器是否有新信,這些工作可由每個(gè)用戶自行設(shè)置




創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。


當(dāng)前名稱:shell腳本知識(shí)-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)于:http://weahome.cn/article/dchpih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部