首页 > 解决方案 > 如何从 bash (Linux) 打开应用程序

问题描述

尽可能自动化您生活的一部分!(它似乎无法正常工作......)。这次是为了在我早上泡咖啡时在我的桌面上打开多个应用程序。

我创建了一个 .sh 来打开我的工作区应用程序,如 Visual Code、Slack、Firefox 等。

脚本基本上是:

exec code
exec /usr/local/firefox_dev/firefox
exec snap/slack/39/usr/bin/slack
exec /snap/spotify/current/usr/share/spotify/spotify

我基本上找到了可执行应用程序的路径并将 exec 放在它们前面......是的,我chmod +x ./workspace-apps-script.sh让它可执行。

问题是:无论我先放哪一行,它都只执行第一行。我希望他们一个接一个地打开并打开到最后一个。

标签: linuxbashsh

解决方案


问题是您的应用程序在启动时不会返回。 所以你必须让他们在后台分离

要在后台执行命令,您只需&在脚本的命令行末尾添加即可。例如:

#!/bin/bash

code &
/usr/local/firefox_dev/firefox &
snap/slack/39/usr/bin/slack &
/snap/spotify/current/usr/share/spotify/spotify &

如果要以分离模式执行命令,可以nohup在命令行开头使用。例如:

#!/bin/bash

nohup code
nohup /usr/local/firefox_dev/firefox
nohup snap/slack/39/usr/bin/slack
nohup /snap/spotify/current/usr/share/spotify/spotify

我建议您将两种模式结合起来以获得最佳效果。因此,您可以在脚本中执行此操作:

#!/bin/bash

nohup code &
nohup /usr/local/firefox_dev/firefox &
nohup snap/slack/39/usr/bin/slack &
nohup /snap/spotify/current/usr/share/spotify/spotify &

但是,如果您想在每次登录到您的电脑时执行此操作,您可以直接在您的.bashrc文件中写入 abobe 行,该文件位于您的主目录中,并在每次登录时执行。


推荐阅读