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結束處於Tl狀態的程序,釋放記憶體資源Linux記憶體
- 檢視使用 MySQL Shell 的連線狀態MySql
- Shell 指令碼中的exit狀態解釋指令碼
- Shell程式設計-11-子Shell和Shell巢狀程式設計巢狀
- 程式的建立和程式的狀態
- 程式的3種狀態
- Shell指令碼監控MySQL主從狀態指令碼MySql
- 3D列印結束時候,讓列印頭抬起的程式碼(cura的結束程式碼)3D
- Linux程式狀態——top,ps中看到程式狀態D,S的含義Linux
- 程式的狀態與轉換
- 短視訊平臺開發,按返回鍵直接結束當前連麥狀態
- 秋招結束,我拿到了華為小獎狀!
- React 路由狀態管理總結React路由
- Windows下檢視程式及結束程式命令Windows
- 【架構設計】無狀態狀態機在程式碼中的實踐架構
- 執行緒的幾種狀態總結執行緒
- 根據ip列表檢測主機狀態(shell指令碼)指令碼
- Flutter狀態管理 - 初探與總結Flutter
- 小程式全域性狀態管理
- 使用 Hooks 簡化受控元件的狀態繫結Hook元件
- 狀態機模式 與 ajax 的結合運用模式
- 關於 Android 狀態列的適配總結Android
- [譯] Flutter 中的原生應用程式狀態Flutter
- 結束OI
- 考研結束
- 如何在 Linux 系統中結束程式或是中止程式Linux
- win10 結束不了程式 結束程式在 12244 上沒有成功:拒絕訪問怎麼解決Win10
- springboot 程序已結束,退出程式碼為 0Spring Boot
- 簡述top命令與結束程式kill命令
- CSS設定連結<a>四個狀態CSS
- BGP報文結構&型別、狀態型別
- HTTP狀態程式碼是什麼?HTTP
- Windows系統如何批量結束工作管理員的程式樹?Windows
- 圖解HTTP《四》:返回結果的HTTP狀態碼圖解HTTP
- 淺談前端的狀態管理,以及anguar的狀態管理庫前端
- 案例五:shell指令碼實現定時監控http服務的執行狀態指令碼HTTP