歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

FreeBSD Shell腳本


從上面的例子中可以看出, sh具備基本的控制能力,能夠處理簡單的任務。這樣就可以簡單的將所需要的操作集中起來,放在同一個文件之內,就組成了一個腳本,而這個腳本就可以當作一個可執行的程序直接執行,這樣就可以方便日常的操作和維護。
QUOTE:$ cat > test.sh
for COUNT1 in 0 1 2 3 4 5 6 7 8 9
do
for COUNT2 in 0 1 2 3 4 5 6 7 8 9
do
echo “ count is $COUNT1$COUNT2 ”
done
done
^D
$ sh test.sh

執行腳本程序的最直接方式是如同上面的例子中,將腳本文件作為 sh的一個參數來啟動。然而,更完善的方式是直接執行腳本本身,這就需要在腳本的第一行加上 ” #! /bin/sh ” 指出解釋這個腳本的程序為 sh,然後為該文件增加執行屬性,那麼該腳本程序就可以獨立執行了。
$ head -1 test.sh
#! /bin/sh
$ chmod +x test.sh
$ ./test.sh
當把所需要的操作抽象到腳本程序中之後,通常就意味著這個程序可能多次運行,這也就意味著,這個程序需要處理一些輸入工作。第一種將數據輸入到腳本程序的方法是使用程序參數, sh將使用內部變量$#代表參數的數量,$*代表所有的參數字符串,而$1代表第一個參數,等等。
QUOTE:$ cat testparam.sh
#! /bin/sh
echo “ param number is $# ”
echo “ params is: $* ”
echo “ param 1 is : $1 ”
$ ./test.sh param1 param2 “ this is param3 ”

如果參數中間包含空白字符,那麼可以使用引號將它引起來,表示是一個參數。
第二種將數據輸入到程序中的方法是讓程序自身去讀取輸入,這可以通過 read來完成。
QUOTE:$ cat testinput.sh
#! /bin/sh
read -p “ please input: ” inputvar
echo “ you key in: $inputvar ”
read -p “ please input 2 words at least: ” inputvar1 inputvar2
echo “ you key in word1: $inputvar1 ”
echo “ last is word2: $inputvar2 ”
$ ./test.sh

read使用 ” -p ” 作為輸入提示,將用戶輸入的整行內容賦給相應的變量,如果要求輸入多個變量, read會按照分隔符的要求,將第一個單詞賦給第一個變量,其他部分賦給第二個變量。
可以注意到,這裡的變量並沒有使用 export指令,事實上一個變量可以直接使用,當它的有效范圍有限,只是一個局部變量,只在這個腳本內部,或者在命令行的一行命令中內部有效,不能影響這個腳本啟動的其他外部程序。
Shell腳本本身是比較簡單的,但它在很多情況下十分有效,特別是對於執行日常經常執行的維護操作,它的能力來源於Unix下命令的靈活組合能力,這就是Unix設計的主要思路之一,因此對於Unix用戶來講,掌握shell腳本是非常有用的。參考系統的rc啟動腳本,能夠學習到更多的腳本編程技巧,這些技巧能夠大大提高日常工作的效率。
簡單的 shell腳本掌握起來非常簡單,但如果使用它來實現一些高級功能,shell腳本的處理能力有時候就不夠了,這些時候,例如 awk、perl、python等高級腳本語言更為有效。
Copyright © Linux教程網 All Rights Reserved