學習常用功能語句:read、expr、test
read可讀入並傳遞給變數
expr可用於算數運算
test可用於整數、字元、檔案比較,感覺可用於條件判斷。
功能:讀入輸入的引數賦值給變數
a- 單個輸入
格式:
read param
b- 多個輸入
多個輸入格式:
read param0 param1 param2
說明:
如果只輸入了1個引數就按了回車,則後面的兩個變數無賦值。
如果輸入的引數多於變數個數,則多餘的引數全部賦值給最後乙個變數
#!/bin/bash
echo -n "input data(year month date):"
read year month date
echo "time:$year-$month-$date"
注意:對於bash不換行用-n引數;對於sh指令碼不換行用\c
#sh指令碼不換行 \c
echo "input data(year month date):\c"
#bash指令碼不換行 -n
echo -n "input data(year month date):"
2- 算數命令expr
expr可用於算數運算。運算子前後有空格;乘法用\*;
注意如果將結果賦值給另一變數,使用反引號(esc下面和~在一塊的反引號!)
示例:
#!/bin/bash
ret=`expr 2 + 3 \* 2`
echo $ret
3- 測試test
可用於測試數字、字元、檔案。測試結果可用$?列印,表示上次命令執行結果,正確返回0。
a- 數字測試
eq等於則為真
-ne不等於則為真
-gt(greater)大於則為真
-ge大於等於則為真
-lt(lower)小於則為真
-le小於等於則為真
b- 字元測試;
=等於則為真
!=不相等則為真
-z 字串
字串的長度為零則為真
-n 字串
字串的長度不為零則為真
c- 檔案測試:
-e 檔名
如果檔案存在則為真
-r 檔名
如果檔案存在且可讀則為真
-w 檔名
如果檔案存在且可寫則為真
-x 檔名
如果檔案存在且可執行則為真
-s 檔名
如果檔案存在且至少有乙個字元則為真
-d 檔名
如果檔案存在且為目錄則為真
-f 檔名
如果檔案存在且為普通檔案則為真
-c 檔名
如果檔案存在且為字元型特殊檔案則為真
-b 檔名
如果檔案存在且為塊特殊檔案則為真
此外還有選項-nt、-ot 檔案1是否檔案2新、舊。
示例:
#!/bin/bash
#數字測試
test 6 -eq 6
echo $?
#字元測試
test "hello" = "hi"
echo $?
#檔案測試
test -e hello.c
echo $?
shell指令碼學習2
前面已經介紹過shell指令碼的基本的使用的方法,在這篇中我將介紹三個字元擷取命令cut和awk以及sed命令。1 cut命令 cut 選項 檔名 選項 f 列號 提取第幾列 列號之間用,分開,列號之間是用製表符分開 d 分隔符 按照指定分隔符分割列 分隔符 cut命令與grep命令經常聯合使用 c...
Shell指令碼學習(2)
在執行shell指令碼時,向shell指令碼傳遞引數,獲取引數的格式為 n。其中n表示乙個數字,作為執行指令碼的第n個引數,且n 0。1 bin bash 2 echo shell 傳遞引數例項!3 echo 執行的檔名 0 4 echo 第乙個引數為 1 5 echo 第二個引數為 2 6 ech...
shell指令碼if語句
if條件判斷語句,通常以if開頭,fi結尾。也可加入else或者elif進行多條件的判斷,if表示式如下 if 表示式 語句1else 語句2fi if常見的判斷邏輯運算子 f 判斷檔案是否存在,例如if f filename d 判斷目錄是否存在,例如if d dir eq 等於,應用於整型比較,...