我编写了一个非常简单(但对我很有用)的 bash 脚本。它所做的只是打开一些我手动打开的应用程序。以下是代码:
#!/bin/bash
netbeans &
mysql-workbench &
opera &
chromium-browser &
现在,当我关闭终端时,脚本打开的应用程序仍会继续运行。这是正常的,这就是“&”的作用。
我的问题是:有没有办法既可以自动运行这些应用程序,又可以自动关闭它们?如果它们仍然连接到终端,它们就会关闭,但是当我删除 & 符号时,它只会运行第一个应用程序。
谢谢
答案1
您可以从文件中使用这两个函数.bashrc
来启动和关闭它们,只需用lapp
和调用它们即可kapp
:
lapp(){
netbeans &
mysql-workbench &
opera &
chromium-browser &
}
kapp() {
pkill 'netbeans|mysql-workbench|opera|chromium-browser'
}
#Or
kapp() {
killall 'netbeans|mysql-workbench|opera|chromium-browser'
}
信息:
source .bashrc
记得在添加这些函数后运行
(来源:man pkill
)
答案2
您必须获取脚本,以便在当前 shell 中执行这些命令,而不是在为脚本启动的分叉 shell 中执行:
. ./foo.sh
然后,这些后台进程将成为你的shell的作业控制的一部分。
使用函数可能更简单。例如,在 bashrc 中添加:
foo () {
netbeans &
mysql-workbench &
opera &
chromium-browser &
}
然后,当您foo
从 bash 运行时,它将在您当前 shell 中运行命令。