Mar*_*ark 12 linux shell-script gnome-terminal
我正在尝试编写一个命令,该命令将启动几个终端选项卡,在每个选项卡中执行某些操作,并在命令完成后让每个选项卡保持打开状态,以便我可以查看输出并在每个选项卡中键入更多命令
像这样:
gnome-terminal --tab -e "ls -a" --tab -e "ls"
但问题在于,一旦“ls”命令完成,选项卡就会关闭。有谁知道如何让标签保持打开状态?
les*_*ana 11
Gnome-terminal 可以执行命令或打开 shell,但不能同时执行。
有一种解决方法可以通过将命令和 shell 的后续调用封装到一个命令中来实现。
$ gnome-terminal -e "bash -c \"echo foo; echo bar; exec bash\""
Run Code Online (Sandbox Code Playgroud)
有关更多替代方案,请阅读我对堆栈溢出类似问题的回答:https : //stackoverflow.com/questions/3512055/avoid-gnome-terminal-close-after-script-execution/3531426#3531426
小智 10
如果您已安装xdotool并wmctrl安装,则以下 shell 脚本可能会起作用:
#!/usr/bin/env bash
window="$(xdotool search --class gnome-terminal | head -1)"
xdotool windowfocus $window
xdotool key ctrl+shift+t
xdotool type "$*"
xdotool key Return
Run Code Online (Sandbox Code Playgroud)
我像这样使用它:
$ run-in-new-tab 'ls -l'
Run Code Online (Sandbox Code Playgroud)
我在Trustin Lee 的博客上发现了这个想法。