請詳細閲讀代碼當中的解釋
#!/bin/bash # shell參數和if語句 # shell的參數獲取 $0 默認是文档名 ,接下來的是$number 是獲第number個取參數 # 執行方法:sh t.sh t1 t2 t3 echo "執行的文档是$0" echo "第一個參數:$1" echo "第二個參數:$2" echo "第三個參數:$3" # $$ ###當前shell的id # $n ###傳遞給腳本或函數的參數。n 是一個數字,表示第幾個參數。例如,第一個參數是$1,第二個參數是$2。 # $# ###傳遞給腳本或函數的參數個數。 # $* ###傳遞給腳本或函數的所有參數。 # $@ ###傳遞給腳本或函數的所有參數。被雙引號(" ")包含時,與 $* 稍有不同 # $? ###上個命令的退出狀態,或函數的返回值。 # $* 和 $@ 的區別:$* 和 $@ 都表示傳遞給函數或腳本的所有參數,不被雙引號(" ")包含時,都以"$1" "$2" … "$n" 的形式輸出所有參數。但是當它們被雙引號(" ")包含時,"$*" 會將所有的參數作爲一個整體,以"$1 $2 … $n"的形式輸出所有參數;"$@" 會將各個參數分開,以"$1" "$2" … "$n" 的形式輸出所有參數。 echo "當前的shell的進程的id是$$" echo "當前腳本的參數個數是$#" echo "所有的參數一起顯示是$*" echo "所有的參數單獨顯示是$@" echo "上一個命令退出的返回值$?" # shell的算術運算符 a=100 b=200 # 下面是加,減,成,除,取餘 val=`expr $a + $b` echo "a + b : $val" val=`expr $a - $b` echo "a - b : $val" val=`expr $a \* $b` echo "a * b : $val" val=`expr $a / $b` echo "a / b : $val" val=`expr $a % $b` echo "a % b : $val" # if 語句都得用空格隔開,參數也是一樣 if [ $a == $b ] then echo "$a等於$b" fi if [ $a != $b ] then echo "a不等於b" fi # 關係運算符:關係運算符只支持數字,不支持字符串,除非字符串的值是數字。 # -eq 檢測兩個數是否相等,相等返回 true。 [ $a -eq $b ] 返回 true。 # -ne 檢測兩個數是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。 # -gt 檢測左邊的數是否大於右邊的,如果是,則返回 true。 [ $a -gt $b ] 返回 false。 # -lt 檢測左邊的數是否小於右邊的,如果是,則返回 true。 [ $a -lt $b ] 返回 true。 # -ge 檢測左邊的數是否大等於右邊的,如果是,則返回 true。 [ $a -ge $b ] 返回 false。 # -le 檢測左邊的數是否小於等於右邊的,如果是,則返回 true。 [ $a -le $b ] 返回 true。 if [ $a -eq $b ] then echo "$a -eq $b : a 等於 b " else echo "$a -eq $b : a 不等於b " fi if [ $a -ne $b ] then echo "$a -ne $b : a 不等於 b " else echo "$a -ne $b : a 等於b " fi if [ $a -gt $b ] then echo "$a -gt $b : a 大於 b " else echo "$a -gt $b : a 不大於b " fi if [ $a -lt $b ] then echo "$a -lt $b : a 小於 b " else echo "$a -lt $b : a 不小於b " fi if [ $a -ge $b ] then echo "$a -ge $b : a 大等於 b " else echo "$a -ge $b : a 不大等於b " fi if [ $a -le $b ] then echo "$a -le $b : a 小於等於 b " else echo "$a -le $b : a 不小於等於b " fi