Shell基本命令(下)

一、test 命令
Shell中的 test 命令用于檢查某個條件是否成立,它可以進行數值、字符和文件三個方面的測試。
數值測試:-eq, -ne, -lt, -gt, -le, -ge
字符串測試: =, !=,
文件測試:
-e 文件名: 如果文件存在則為真
-r 文件名: 如果文件存在且可讀則為真
-w 文件名: 如果文件存在且可寫則為真
-x 文件名: 如果文件存在且可執行則為真
-s 文件名: 如果文件存在且至少有一個字符則為真
-d 文件名: 如果文件存在且為目錄則為真
-f 文件名: 如果文件存在且為普通文件則為真
-c 文件名: 如果文件存在且為字符型特殊文件則為真
-b 文件名: 如果文件存在且為塊特殊文件則為真
like:
cd /bin
if test -e ./bash
then
echo '文件已存在!'
else
echo '文件不存在!'
fi

like:
num1=100
num2=100
if test $[num1] -eq $[num2]
then
echo '兩個數相等!'
else
echo '兩個數不相等!'
fi

二、流程控制
和Java、PHP等語言不一樣,sh的流程控制不可為空
1、if:
if condition
then
command1
command2
...
commandN
fi

2、if else:
if condition
then
command1
command2
...
commandN
else
command
fi

3、for 循環:
for var in item1 item2 ... itemN; do command1; command2… done;

4、while 語句:
while condition
do
command
done

5、case:case語句匹配一個值與一個模式,如果匹配成功,執行相匹配的命令。
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac

6、break:允許跳出所有循環
7、continue:continue命令與break命令類似,只有一點差別,它不會跳出所有循環,僅僅跳出當前循環。

三、函數
1、語法:可以帶function fun() 定義,也可以直接fun() 定義,不帶任何參數;參數返回,可以顯示加:return 返回,如果不加,將以最后一條命令運行結果,作為返回值。 return后跟數值n(0-255),函數返回值在調用該函數后通過 $? 來獲得。
2、函數參數:調用函數時可以向其傳遞參數。在函數體內部,通過 $n 的形式來獲取參數的值。例如,$1表示第一個參數。
add(){
echo "first parameter: $1"
echo "second parameter: $2"
return $(($1+$2))
}
add 1 2
echo $?

四、文本包含
Shell 也可以包含外部腳本。這樣可以很方便的封裝一些公用的代碼作為一個獨立的文件。語法:
. filename # 注意點號(.)和文件名中間有一空格
或 source filename
eg:
test1.sh 代碼如下:
url="http://www.runoob.com"
test2.sh 代碼如下:
. ./test1.sh
echo "菜鳥教程官網地址:$url"

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,464評論 0 5
  • .bat腳本基本命令語法 目錄 批處理的常見命令(未列舉的命令還比較多,請查閱幫助信息) 1、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,214評論 1 19
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139
  • 今天是父親節,此文獻給我可親可愛的父親。 從工作到現在換個3個單位,3個不同的地區。第一次因為父親的同學故...
    小麗昵稱閱讀 233評論 0 0
  • 三七一密碼,農歷二零一六年十二月十二日起修心印經五十三周。
    郭三德閱讀 655評論 0 0