使用Bash脚本打开多个终端并执行不同的命令

8

我尝试编写自己的 shell 脚本。目前为止,我已经成功打开了 4 个 xterminals,但由于“hold”选项的限制,它们只能执行一个命令。

如果我不使用这个选项,终端窗口就会消失。

以下是我的代码:

#!/bin/sh
xterm -title "App 1" -hold -e mycommand | mysecondcommand  &
xterm -title "App 2" -hold -e mycommand | mysecondcommand  &
xterm -title "App 3" -hold -e mycommand | mysecondcommand  &
xterm -title "App 4" -hold -e mycommand | mysecondcommand

我不确定是否应该在同一个终端执行第二个命令。

有什么想法吗?

谢谢


1
你正在尝试运行哪些命令?你应该能够通过使用“-e“command1; command2; command3 &”等来执行多个命令。也许考虑将这些命令批处理到另一个脚本中,然后调用它? - Josh Jolly
首先我需要切换到另一个目录,然后执行一个程序。但是,主要问题仍然是-hold选项 :/ - itachi42
如果您尝试以下命令:xterm -title "App 1" -e "cd /my/dir && mycommand",会发生什么? - Josh Jolly
当我不使用-hold时,它会出现半秒钟,然后就消失了。而且我无法在任何地方进行CD操作:“没有这样的文件”,使用以下命令:xterm -title "App 1" -e cd /home/ - itachi42
1
“/home/” 存在吗?你是否在命令周围加上引号?如果你执行类似于 xterm -title "App 1" -e "touch testfile" 的命令,那么 testfile 是否会被创建? - Josh Jolly
显示剩余3条评论
1个回答

6

没有使用-hold选项,xterm会在命令完成后立即关闭。您可以使用双引号和命令分隔符(例如;&)来执行多个命令:

xterm -title "App 1" -e "mycommand; mysecondcommand" 

谢谢,问题已解决! - itachi42
你会如何使用 gnome-terminal 来完成这个任务? - gone
2
@已过时 你需要将 xterm 替换为 gnome-terminal 并删除选项 (-title--hold)。请参考 gnome-terminal 手册 (man gnome-terminal) 以获取更多选项。 - trueter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接