????:新建shell腳本新建一個(gè)文件,擴(kuò)展名為sh(sh代表shell),或者其他任意名字,其實(shí)擴(kuò)展名并不影響腳本執(zhí)行,見名知意就好,這里用sh是為了便于分辨。在你新建的文件中輸入以下內(nèi)容:#!/bin/bash echo "Hello World !"“#!” 是一個(gè)約定的標(biāo)記,它告訴系統(tǒng)這個(gè)腳本需要什么解釋器來執(zhí)行,即使用哪一個(gè)Shell來執(zhí)行。ec
新建shell腳本
新建一個(gè)文件,擴(kuò)展名為sh(sh代表shell),或者其他任意名字,其實(shí)擴(kuò)展名并不影響腳本執(zhí)行,見名知意就好,這里用sh是為了便于分辨。
在你新建的文件中輸入以下內(nèi)容:
#!/bin/bash echo "Hello World !"
“#!” 是一個(gè)約定的標(biāo)記,它告訴系統(tǒng)這個(gè)腳本需要什么解釋器來執(zhí)行,即使用哪一個(gè)Shell來執(zhí)行。
echo命令用于向窗口輸出文本。
運(yùn)行shell腳本
運(yùn)行Shell腳本有兩種方法。
1)作為可執(zhí)行程序
將上面的代碼保存為test.sh,并 cd 到相應(yīng)目錄:
chmod +x ./test.sh #使腳本具有執(zhí)行權(quán)限 ./test.sh #執(zhí)行腳本
注意,一定要寫成./test.sh,而不是test.sh。
運(yùn)行其它二進(jìn)制的程序也一樣,直接寫test.sh,linux系統(tǒng)會(huì)去PATH里尋找有沒有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的當(dāng)前目錄通常不在PATH里,所以寫成test.sh是會(huì)找不到命令的,要用./test.sh告訴系統(tǒng)說,就在當(dāng)前目錄找。
通過這種方式運(yùn)行bash腳本,第一行一定要寫對,好讓系統(tǒng)查找到正確的解釋器。
2)作為解釋器參數(shù)
這種運(yùn)行方式是,直接運(yùn)行解釋器,其參數(shù)就是shell腳本的文件名,如:
/bin/sh test.sh /bin/php test.php
這種方式運(yùn)行的腳本,不需要在第一行指定解釋器信息,寫了也沒用。
再看一個(gè)例子。下面的腳本使用 read 命令從 stdin 獲取輸入并賦值給 PERSON 變量,最后在 stdout 上輸出:
#!/bin/bash # Author : linuxdaxue.com echo "What is your name?" read PERSON echo "Hello, $PERSON"
運(yùn)行腳本:
chmod +x ./test.sh $./test.sh What is your name? linuxdaxue Hello, linuxdaxue $
總結(jié)
看到這里同學(xué)們是不是對shell腳本有了更深刻的理解呢?那就趕緊行動(dòng)起來吧,按照上面的方法自己實(shí)踐一遍,如果有不懂的地方及時(shí)發(fā)現(xiàn),及時(shí)解決,這樣才能真正的將知識(shí)變?yōu)樽约旱哪芰Α?/p>