shell腳本學習_功能語句_2

學習目標:

學習常用功能語句: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 $?

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章