shell指令碼基本語法詳解

2021-08-16 04:59:14 字數 2377 閱讀 1730

1:編寫shell指令碼的時候,前面必須加上:#!/bin/bash

2:一般shell的變數賦值的時候不用帶「$」,而使用或者輸出的時候要帶「$」

3:加減乘除的時候要加兩層小括號,括號外面要有乙個「$」

4:變數賦值,變數使用的時候不能有空格,否則會被解析成命令,報錯無此命令。

執行shell指令碼的兩種 方式

1:sh 檔名

2: ./檔名 (被執行檔案需要有執行許可權,否則報錯)

1:單分支判斷語句
格式:if 條件 ; then 結果 fi ,最後面一定要有fi,在shell指令碼裡面,控制分支結構結束都要和開頭的單詞相反,例如,if fi,case esac。

#!/bin/bash

echo "please input a filename"

read filename

if [ -f $filename ];then

echo "this file is a ordinary file."

fi

結果如圖:

2:雙分支判斷語句

#!/bin/bash

echo "please input a filename"

read filename

if [ -f $filename ];then

echo "this file is a ordinary file"

else

echo "this file is a not ordinary file "

if

結果如圖:

1:while語句

while語句是只要條件為真就執行下面語句。

格式:

while 條件

do 語句

done

需要注意的是,這裡的條件除了 while true 可以這樣寫,其它的條件都要用 test或者 來判斷

#!/bin/bash i=1

whil

e[i -gt 0 ]

do echo $i

((i–))

done

結果如圖:

2:until語句

until語句是只要條件為假就執行下列語句

格式:

until 條件

do 語句

done

#!/bin/bash

i=$1

until [ $i -le 0 ]

doecho $i

((i--))

done

結果如圖:

3:for語句

格式:

for 變數 in 列表

do 語句

done

#!/bin/bash

for i in `seq 2 8` #seq是乙個命令,順序生成一串數字或者字元

do echo $i

done

結果如圖:

格式:

[function] funcname()

返回值是可選的,如果沒有顯示return 則預設返回最後一條語句執行的結果。

如果一定要讓函式返回字串,那麼可以先定義乙個變數,用來接收函式的計算結果,指令碼在需要的時候訪問這個變數來獲得函式返回值。

函式引數從1到

n,$0 是檔名。

#!/bin/bash

#列印數字

printnum()

for i in `seq 2 8` #seq是乙個命令,順序生成一串數字或者字元

doprintnum $i

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指令碼語法

測試乙個條件是否成立,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或者 ...