我创建了一个 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
应该足够了,但有时您不拥有脚本。