shell指令碼語法

2021-08-09 00:15:37 字數 2853 閱讀 9474

-測試乙個條件是否成立,

python@ubuntu

:~/1004

$ var=2

python@ubuntu

:~/1004

$ test $var

python@ubuntu

:~/1004

$ echo $?

0python@ubuntu

:~/1004

$ test $var -gt 5

python@ubuntu

:~/1004

$ echo $?

1

或者:

(注意: 兩邊加空格)

python@ubuntu

:~/1004

$ [ $var -gt 1 ]

python@ubuntu

:~/1004

$ echo $?

0

語法錯誤:

python@ubuntu

:~/1004

$ [ $s1 = $s4 ]

bash: [: hello: 需要一元表示式

需要加"" : [ "$s1" = "$s4" ]

if/then/elif/else/fi

實現分支控制

#! /bin/sh

if [ -d ~/desktop ]; then

echo

"desktop is dir"

echo

"dimples"

fi

source t2.sh
#! /bin/sh

echo

"it is morniing? yes or no"

read yes_or_no

if [ "$yes_or_no" = "yes" ]; then

echo

"早上好"

elif [ "$yes_or_no" = "no" ]; then

echo

"中午好"

else

echo

"sorry"

exit 1

fiexit 0

python@ubuntu

:~/1004

$ vi t3.sh

python@ubuntu

:~/1004

$ chmod a+x t3.sh

python@ubuntu

:~/1004

$ ./t3.sh

it is morniing? yes or no

yes早上好

case/esac
#! /bin/sh

echo "is it morning"

read yes_or_no

case "$yes_or_no"

inyes|y|yes|yes)

echo "早上好";;

[nn]*)

echo "中午好";;

*) echo "sorry"

exit

1;;esac

exit

0

python@ubuntu

:~/1004

$ chmod a+x t4.sh

python@ubuntu

:~/1004

$ ./t4.sh

case語句的例子可以在系統服務的指令碼目錄 /etc/init.d中找到。這個目錄下都是啟動指令碼程式。

for/do/done

#! /bin/sh

echo

"i like $fruit"

done

python@ubuntu

:~/1004

$ source t5.sh

i like pear

i like banana

while/do/done
#! /bin/sh

echo

"輸入密碼:"

read pwd

while [ "$pwd" != "111111" ]; do

echo

"sorry, try again"

read pwd

done

python@ubuntu

:~/1004

$ source t6.sh

輸入密碼:

1sorry, try again

2sorry, try again

111111

通過算數運算控制迴圈的次數:

#! /bin/sh

echo

"請輸入密碼"

read pwd

counter=1

while [ "$counter" -lt 6 ]; do

if [ "$pwd" != "123" ]; then

#break

if [ "$counter" -eq 5 ]; then

echo

"輸入錯誤,沒有機會啦"

else

echo = "輸入錯誤,再來一次"

read pwd

fielse

echo

"輸入成功"

break

fi counter=$(($counter+1))

done

Shell指令碼語法

定義單變數 p name kang 使用單變數 echo p name js 輸出kang.js echo p name.js 輸出kang.js cp p name.js copy.js 命令1 命令2 如果左邊的 命令1 執行成功,那麼右邊的 命令2 才會被執行。命令1 命令2 與 相反。如果 ...

shell指令碼 語法

條件測試 test 命令test 可以測試乙個條件是否成立,如果測試條件為真,則該命令的exitstatus為0,反之,exitstatus為1。注意 命令 各引數之間應該用空格隔開,以 結尾。但是 不是命令。測試命令 d dir 如果dir存在並且是乙個目錄則為真 f file 如果file存在並...

shell指令碼語法

一 數值運算 1 expr數值運算工具 root localhost aa 11 root localhost bb 22 給變數aa和變數bb賦值 root localhost dd expr aa bb dd的值是aa和bb的和。注意 號左右兩 側必須有空格 2 表示式求值 expr1 3 ex...