0
如果啓動一個腳本,其中包含exit
語句,您必須將其作爲子進程啓動。防止「點」一個外殼來執行它(退出功能,查殺終端和退出外殼)
如果您啓動它與你的終端會話啓動電流殼內(使用. ./<scriptname>
任何退出將關閉主外殼,一個沿着你的終端會話啓動。
die() {
echo "ERROR: $*. Aborting." >&2
exit 1
}
[ -s "$1" ] || die "empty file"
echo "this should not be reached if $1 is not a nonempty file"
我知道這種情況我想寫點東西,我防止外殼被以這種方式運行:?
. shell.ksh params
如果有人要運行它這種方式,應以信息報錯了 如何完成這件事 謝謝
使用'return',而不是'exit'。回答[這裏](http://stackoverflow.com/questions/3666846/how-do-you-return-to-a-sourced-bash-script),我搜索「bash退出源文件」,它是第一個結果 – 123
程序將繼續返回。它會從功能而不是程序中退出,我希望腳本退出:當它「死亡」時再繼續進行 – user1874594
@ 123,...但退出腳本是'die'的意圖的一部分;這裏的問題是它是父shell,而不僅僅是腳本,退出。 –