Linux shell 脚本没有完全作为桌面快捷方式执行

标签 linux shell shortcut-file

我希望创建一个 shell 脚本来在我开始工作时打开一组应用程序。我找到了几个帖子 like this这似乎是我要找的。问题是,当我双击脚本时,脚本不起作用。

如果我从终端启动脚本,它会完全执行,但我不想总是从终端调用它,我想双击快捷方式。如果我在末尾添加一个“sleep 1”,它大部分时间都有效,但这里的问题是 1 秒并不总是足以执行所有操作。而且,它只是感觉非常不精确。当然,我可以说“睡 10 分钟”然后完成它,但是,作为开发人员,这感觉像是一个 hack 解决方案。

这是我当前的脚本,我打算随着时间的推移将我的应用程序添加到此列表中,但现在这就足够了:

#!/bin/bash
skype &
/opt/google/chrome/google-chrome &
geany &
mysql-workbench &

所以问题是:我怎样才能确保一切都启动但又不会让临时终端窗口打开的时间超过需要的时间?

如果重要的话,为了创建这个脚本,我只是将一个 .sh 文件保存到桌面并在文件属性中选中“允许将文件作为程序执行”。

最佳答案

尝试在每个命令前加上 nohup:

#!/bin/bash
nohup skype &
nohup /opt/google/chrome/google-chrome &
nohup geany &
nohup mysql-workbench &

更好的是,使用循环:

#!/bin/bash

apps="skype /opt/google/chrome/google-chrome geany mysql-workbench"

for app in $apps; do
  nohup $app &
done

如果发生任何错误,请检查 nohup.out 以获取消息。

关于Linux shell 脚本没有完全作为桌面快捷方式执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27569104/

相关文章:

shortcut-file - 触发全局快捷方式时哪个应用程序具有焦点

linux - 有没有一种标准方法可以知道窗口是 float 的还是平铺的?

linux - 替换字符串中的点,但保留最后一个

git - 通过部分名称在git中切换分支

当由 Cron 定期调用的 Bash 脚本运行时,Python 脚本不执行

windows - 如何使用 Powershell 创建以管理员身份运行快捷方式

delphi - 如何在不更新图标的情况下更改快捷方式路径?

linux - 在 linux 中替换文件的字符串

linux - shmget() 返回的 shmid 是否跨进程唯一?

python - 检查 pip 是否通过脚本安装