學習目標:
學習常用功能語句:read、expr、test
總結:
read可讀入並傳遞給變量
expr可用於算數運算
test可用於整數、字符、文件比較,感覺可用於條件判斷。
正文:
1- 輸入read
功能:讀入輸入的參數賦值給變量
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 $?