shell指令碼 exit退出當前程序

2021-10-03 23:13:37 字數 1287 閱讀 4610

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...