有条件地退出/中止shell脚本执行

时间:2011-10-05 14:32:37

标签: bash exit

我正在编写一个bash脚本,利用getopt处理脚本名称后提供的许多选项。

我正在通过puTTy访问我的shell。

我用脚本调用脚本。 scriptname.sh -o --options(有没有更好的方法来执行bash脚本?)

我希望能够中止/暂停脚本,但每当我使用exit时,它不仅会退出脚本,还会关闭终端/ puTTy窗口。

...哪种方式违背了目的,因为我正在尝试做的是设置某种--help文本输出,显示文本但不执行脚本的其余部分。

exit有什么关系?如果不关闭任何父控制台窗口,我应该使用什么来暂停/中止脚本?

1 个答案:

答案 0 :(得分:8)

使用exit是正确的,您只是没有正确执行脚本。

使用.与使用source命令(help source用法)相同,如果您真的想要执行脚本,则不是一个好主意。

取而代之的是chmod a+x scriptname.sh,然后使用./scriptname.sh来调用它。

不同之处在于source将脚本视为已被您键入;它运行在您以交互方式运行的同一bash会话中。这意味着它更改的任何变量在完成后仍会发生变化。这也意味着如果您将脚本告诉exit,它将正确终止您当前的bash会话。