如何正确编写并执行shell脚本并正确退出?

如何正确编写并执行shell脚本并正确退出?

我写了一个名为启动文件它做了很多事情(基本上在打开本地机器后为我启动了很多事情) - 这是摘录:

#!/bin/bash
gnome-terminal --tab &
veracrypt --auto-mount favorites &
thunderbird &
~/Application/IDEA/bin/./idea.sh &
/usr/bin/slack &
echo myuser mypass | skypeforlinux --pipelogin &
sh bsync-project-folder.sh &
exit

打开控制台窗口并执行以下操作:

. startup.sh

shell 脚本被执行,然后窗口被关闭。

还在工作:

sh startup.sh

或者

./startup.sh

shell 脚本被执行并且终端窗口保持打开状态 - 但是它不会返回到控制台并且必须使用 停止脚本执行CTRL + C(无论我是使用命令行解释器还是使用 执行./)。

但是,我希望完全退出脚本,然后返回到同一控制台并显示成功消息。我缺少什么?

答案1

当您使用“<点> <空格> <脚本名称>”启动脚本并且脚本中包含“exit”时,您的窗口将关闭。点符号表示您在窗口中运行它,然后“退出”表示退出窗口,而不是退出脚本本身。
尝试将 >/dev/null 2>&1 添加到每一行(在最后的 & 之前)以找出哪些命令仍然保留 stdout,例如:
gnome-terminal --tab >/dev/null 2>&1 &
...
你可以但不需要在最后离开出口,但这在这里没有任何意义。运行脚本:./startup.sh

相关内容