运行生成多个终端的 .sh 脚本

运行生成多个终端的 .sh 脚本

我在用Ubuntu 18.04.3 LTS

目前,要启动我的开发环境,我必须在终端中运行以下每个命令:

sudo systemctl stop apache2

sudo /opt/lampp/manager-linux-x64.run

sudo /opt/PhpStorm-193.6015.48/bin/phpstorm.sh 

sudo chmod -R 777 Desktop/Code/testProject

我希望双击桌面上的脚本并自动生成需要在后台运行的两个终端lamppphpstorm

但是,当前执行脚本时它仅启动-server lampp

有什么建议我做错了吗?

感谢您的回复!

答案1

这是 Bash 的预期行为。它会按顺序处理命令,并等待前一个命令完成后再继续。但如果它没有结束,那么它就会陷入等待状态。

如果您不介意看不到某个进程,您可以做的是运行命令后跟一个&符号。这将启动该进程作为子进程,因此您看不到它,但它会在后台运行。

例如:sudo /path/to/command.sh &

如果你需要它可见,你可以这样运行它gnome-terminal -e command。这将打开另一个终端窗口并在该窗口中运行指定的进程,而前一个窗口则继续正常运行。

你的脚本可能看起来像这样。

sudo systemctl stop apache2

sudo gnome-terminal -e /opt/lampp/manager-linux-x64.run

sudo /opt/PhpStorm-193.6015.48/bin/phpstorm.sh 

sudo chmod -R 777 Desktop/Code/testProject

相关内容