shell程式的結束狀態
在Unix中,程式結束時會返回一個狀態,這個狀態可以指示程式是否成功執行。如果使用了pipeline,那麼返回的是最後一個程式的狀態。
我們可以使用$?變數來獲取上一個程式的狀態。例如
$ echo $?
0
有了這個,我們就可以使用if語句來控制程式的流程了,如
if who | grep "$user"
then
echo "$user is logged on"
fi
這個程式根據傳入的引數來判斷使用者是否登入。這裡直接使用程式的返回值來當判斷條件,我們也可以使用test命令來作為if的條件,test命令回去執行傳入的表示式,返回結果。如test "$name" = julio ;test命令的變數和運算子之間需要空格隔開,這點和變數賦值相反。
test命令的替代形式是使用中括號,注意中括號前後要有一個空格。如
if [ "$name" = julio ]
then
echo "Would you like to play a game?"
fi
[ ]命令提供了一些對整數操作的方法,如下
int1 is equal to int2.
int1 is greater than or equal to int2.
int1 is greater than int2.
int1 is less than or equal to int2.
int1 is less than int2.
int1 is not equal to int2.
對檔案操作的方法
file is a directory.
file exists.
file is an ordinary file.
file is readable by the process.
file has nonzero length.
file is writable by the process.
file is executable.
file is a symbolic link.
我們可以在這些操作符前加上一些邏輯操作符來對結果進行邏輯操作,如
!用來對結果取反,[ ! -f "$mailfile" ]
-a 邏輯與,只有當所有結果為真時才返回0,-a的優先順序比整數操作符,字元操作符和檔案操作符的優先順序低,[ -f "$mailfile" -a -r "$mailfile" ]-o 邏輯或,只要有一個的結果返回真,就返回0,-o的優先順序比-a低,[ -n "$mailopt" -o -r $HOME/mailfile ]
if-else if-else語句結構
if commandl
then
command
command
...
elif command2
then
command
command
...
elif commandn
then
command
command
...
else
command
command
...
ficase語句結構
case value in
pat1) command
command
...
command;;
pat2) command
command
...
command;;
...
patn) command
command
...
command;;
esac: 命令表示什麼都不做,例如
if grep "^$system" /users/steve/mail/systems > /dev/null
then
:
else
echo "$system is not a valid system"
exit 1
fi&&,這個可以用來實現類似if的功能,command1
&& command2,只有當command1返回0時,command2才能執行||,這個和 &&類似,command1 || command2,只有command1返回非零值時,command2才能執行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7899089/viewspace-628034/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [SHELL] shell 實現多程式後,如何等待所有程式結束
- 幽默:程式設計師在專案開始和專案結束的狀態程式設計師
- 電子遊戲、規則和結束狀態(end state)遊戲
- 結束程式的命令
- Linux Shell程式設計(11)——退出和退出狀態Linux程式設計
- Shell 指令碼中的exit狀態解釋指令碼
- 檢視使用 MySQL Shell 的連線狀態MySql
- linux結束處於Tl狀態的程序,釋放記憶體資源Linux記憶體
- Shell程式設計-11-子Shell和Shell巢狀程式設計巢狀
- css設定連結a的狀態的例項程式碼CSS
- 程式的建立和程式的狀態
- 程式的3種狀態
- Shell指令碼監控MySQL主從狀態指令碼MySql
- 利用shell指令碼監控網站狀態指令碼網站
- 3D列印結束時候,讓列印頭抬起的程式碼(cura的結束程式碼)3D
- 短視訊平臺開發,按返回鍵直接結束當前連麥狀態
- Linux程式狀態——top,ps中看到程式狀態D,S的含義Linux
- 程式的狀態與轉換
- 秋招結束,我拿到了華為小獎狀!
- linux 程式 狀態Linux
- oracle資料庫執行狀態監控SHELLOracle資料庫
- React 路由狀態管理總結React路由
- 結束程式設計師對程式設計的恨程式設計師
- 執行緒的幾種狀態總結執行緒
- 【架構設計】無狀態狀態機在程式碼中的實踐架構
- Windows下檢視程式及結束程式命令Windows
- 根據ip列表檢測主機狀態(shell指令碼)指令碼
- Flutter狀態管理 - 初探與總結Flutter
- Http協議狀態碼總結HTTP協議
- 有狀態和無狀態的區別
- 小程式全域性狀態管理
- Linux 程式狀態淺析Linux
- linux程式狀態詳解Linux
- 狀態機模式 與 ajax 的結合運用模式
- 使用 Hooks 簡化受控元件的狀態繫結Hook元件
- 如何準確結束RMAN備份程式
- 退出帳戶時不結束程式...(轉)
- [譯] Flutter 中的原生應用程式狀態Flutter