![在 bash 脚本中使用 exit,但不要关闭终端](https://linux22.com/image/15313/%E5%9C%A8%20bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%BD%BF%E7%94%A8%20exit%EF%BC%8C%E4%BD%86%E4%B8%8D%E8%A6%81%E5%85%B3%E9%97%AD%E7%BB%88%E7%AB%AF.png)
我创建了一个 shell 函数来方便地使用桌面搜索工具baloosearch
。我将其创建为函数是有原因的。
现在,在这个函数中,我需要使用exit
命令来退出循环、if
s 或case
条件。问题是,当exit
命令被执行时,它也会杀死我的终端窗口......
我的问题是,有没有办法使用exit
,但不关闭终端窗口?
当使用这个东西作为 shell 脚本时,没问题,但我需要它作为 BASH 函数运行......
答案1
经过 1.5 分钟的研究后,我现在可以自己回答了。
解决方案是使用返回而不是退出。通过这种方式退出函数不会关闭终端,而是使 shell 会话保持打开状态。
答案2
在某些情况下,您需要退出而不是返回或中断,您可以在子终端内执行命令。$(cmd)
那么 exit 将会退出子终端。请记住,将执行返回值。因此,echo -e "Result from cmd:\n$(cmd)"
如果您只想要输出,也许可以用类似的东西包围。一般来说return
应该足够了,但有时您不拥有脚本。