exit是乙個shell內建命令,用於退出當前使用者的登入狀態(退出shell程序)。exit 命令可以接受乙個整數值作為引數,代表退出狀態。如果不指定,預設狀態值是 0。
例如:
[root@linus ~
]# bash
[root@linus ~
]# exit
exit
[root@linus ~
]# echo $?
0[root@linus ~
]# exit
登出
既然exit是退出當前程序,在指令碼中的應用就是退出當前指令碼程序,也就是執行到exit後,直接退出,不再執行後續命令,所以說,exit需要謹慎寫入,確保執行完你想要的效果後再退出。
exit的使用,通常有乙個前提,就比如說,指令碼的執行效果或者反饋結果,是你想要的效果,就退出指令碼,或者說,你不想要指令碼某後半部分命令,只執行前半部分,在前半部分後面加上exit,就會退出指令碼,不再執行後續命令。
格式:exit 返回值
嗯?怎麼多了乙個返回值,直接使用不可以嗎?當然可以,沒有定義返回值的話,預設返回值是在執行指令碼中,exit上面一條命令的返回值。如果定義返回值,那就是你定義的返回值。可以查詢$?變數來檢視返回值。
exit 退出狀態只能是乙個介於 0~255 之間的整數,其中只有 0 表示成功,其它值都表示失敗。
通過乙個簡單的案例,來了解一下exit的具體使用。
#!
/bin/bash
read -p "請輸入(yes|no):" a
case $a in
yes)
echo "您輸入的是yes"
exit 1
echo "我是yes,能看見我嗎";;
no) echo "您輸入的是no"
echo "我是no,能看見我嗎";;
*)echo "輸入錯誤,請輸入yes|no"
esac
執行效果:
[root@linus ~
]# sh exit.sh
請輸入(yes|no)
:yes
您輸入的是yes
[root@linus ~
]# sh exit.sh
請輸入(yes|no)
:no您輸入的是no
我是no,能看見我嗎
可以看到,輸入yes的時候,少了乙個echo輸出,而輸入no的時候,全部都顯示出來,就是因為加上exit後,執行到exit直接結束指令碼。 程序退出 exit 和 exit
void exit int value 是標準庫函式,在標頭檔案 stdlib.h 中定義。具有重新整理 i o 緩衝區的作用。他的引數 value 是返回給父程序的資料 低 8 位有效 void exit int value 是系統呼叫函式,在標頭檔案 unistd.h 中定義。沒有重新整理 i ...
shell指令碼中exit命令使用
exit命令用於退出當前shell,在shell指令碼中可以終止當前指令碼執行。常用方法 格式 exit n 退出shell指令碼,並設定退出碼為n。格式 exit 退出shell指令碼,退出碼為最後乙個命令的退出碼 即 格式 trap commands exit 退出前執行commands指定的命...
Shell中, 退出整個指令碼
cat test.sh 可以看到直接使用exit可以退出指令碼,並且可以將錯誤碼作為引數傳遞。下面我們將指令碼做一點點改動。cat test.sh 在管道 中執行exit script函式,不會退出整個指令碼!原因在於,exit只能退出它所在的shell,而放在管道中執行的命令 函式都是在獨立的sh...