exit命令shell
exit用來控制程序和表達式的流程,通常的編程語言中都會有一個exit函數,在Linuxshell中也屬存在的.編程
exit 0 vim
exit statusbash
status 用0-255之間的數字表示,返回狀態值的同時伴隨着腳本的退出(其實就是退出).編程語言
就是$? 的值可使用echo 進行查詢 ide
exit命令 在腳本中和在終端上是不同的.函數
實驗1-判斷從鍵盤輸入的值是否爲空測試
1,進入一個子shell,編輯一個文件.(預防執行exit的時候退出終端,因此先執行一個子shell)spa
[root@Cent65 ~]# bash
[root@Cent65 ~]# vim exit.sh3d
#!/bin/bash
echo "please enter a string :"
read str1
if [ -z $str1 ]
then
echo "what you enter is null"
exit 1
fi
驗證腳本
咱們先輸入一個值,能夠看到個人退出狀態爲0 (腳本的變量值輸入不爲空),不會執行then中的語句
輸入一個空的字符串 則執行then後面的命令 同時退出 狀態爲1
繼續驗證:
將exit.sh腳本中的值改爲255
在編寫腳本時能夠本身設置退出的狀態值,不過特定的值都是有特定的意義的,不要亂用.
case語句結構
case語句爲多選擇語句。能夠用case語句匹配一個值與一個模式,若是匹配成功,執行相匹配的命令。
case語句主要適用於,某個變量存在多種取值,須要對其中的每一種取值分別執行不一樣的命令序列
case分支語句的語法結構
case 變量名 in
模式1)
命令序列
模式二)
命令序列
;;
……
*)
默認命令序列
exit
esac
注意事項:
取值後面必須爲單詞 in;
每一模式必須以右括號結束。
取值能夠爲變量或常數。
這個esac 就是case的結束,像if...fi 同樣的,
注意commands ;; 中的「;;」不能少掉。
匹配發現取值符合某一模式後,其間全部命令開始執行直至 ;;。
取值將檢測匹配的每個模式。一旦模式匹配,則執行完匹配模式相應命令後再也不繼續其餘模式。
若是無一匹配模式,使用星號 * 捕獲該值,再執行後面的命令。
實驗
編寫一個名爲untar.sh的腳本,用來解壓.tar.gz 和 .tar.bz2格式的歸檔文件
vim untar.sh
case $1 in
*.tar.gz)
tar zxf $1
;;
*.tar.bz2)
tar jxf $1
;;
*)
echo "error"
;;
esac
測試:
建立一個測試的.tar.gz文件