Answers:
gnome-terminal -e command
要么
xterm -e command
要么
konsole -e command
差不多
terminal -e command
konsole中有一个--noclose
标志。
在xterm中,有一个-hold
标志。
在中gnome-terminal
,转到编辑 -> 配置文件首选项 -> 标题。单击命令选项卡。从标记为命令退出时的下拉菜单中选择保留终端。您应该为此创建一个新的配置文件并执行
gnome-terminal --window-with-profile = NAMEOFTHEPROFILE -e 命令
gnome-terminal -e command
仅在command
引用时起作用。因此这行不通:gnome-terminal -e "echo hello world; sleep 3"
但这行之有效gnome-terminal -e "bash -c 'echo hello world; sleep 3'"
。叹。
; $SHELL
到命令末尾来保持gnome-terminal打开。例:gnome-terminal --tab --title="test" --command="bash -c 'cd /etc; ls; $SHELL'"
而不是硬编码的gnome-terminal
,konsole
,等等,使用替代系统。执行默认终端仿真器的程序是:
x-terminal-emulator
在我的系统上,每当我执行此命令时,它将打开Konsole的新实例。
幸运的是,终端似乎支持-e
执行命令的选项(我为konsole
和验证了此选项gnome-terminal
)。命令后的参数传递给调用的命令。Bash拒绝在我的终端机中保持打开状态,需要另一个脚本才能获得终端机:
#!/bin/sh
"$@"
exec "$SHELL"
如果将以前的脚本另存为/home/user/hacky
并使其可执行,则可以使用以下命令运行脚本:
x-terminal-emulator -e /home/user/hacky your-script optional arguments here
完整路径是必需的,/home/user/hacky
并且必须是可执行的。
我以前在新的终端窗口中运行脚本的尝试可以在版本2中找到,那是在我意识到可以将参数传递给之前x-terminal-emulator
。
bash
)或包含诸如的行的shell来“修复”此问题read -p "Press Return to continue"
。
cd xxx && start.sh
。解释器将&&视为命令的第二部分(这是逻辑上的),但是如果我引用它,则它将尝试将整个内容作为一个大参数执行
很简单-
#!/bin/bash
/etc/init.d/ccpd status
这对于不需要在终端中显示任何内容的其他命令就足够了。但是这里必须看到显示的状态。
因此,它需要在终端窗口中运行
#!/bin/bash
gnome-terminal -e "/etc/init.d/ccpd status" --window-with-profile=NAMEOFTHEPROFILE
在此,“ NAMEOFTHEPROFILE”将替换为“命令退出时保留终端”的配置文件名称。
[]
只是占位符
--window-with-profile=NAMEOFTHEPROFILE
我提供的内容
在@nickguletskii的回答以及他的回答下我自己的评论的帮助下,并受到@grabantot对我的评论的支持,这是我的首选方式,尤其是当我希望终端保持打开状态以便可以手动使用它时。
例如 用法:将其添加到启动程序中非常有用,因此该脚本将运行,打开终端,在终端中创建并命名标签并为您运行命令。或者,您可以仅将此脚本的符号链接添加到桌面。我使用这种方法,因此我可以双击桌面上的一个图标,然后打开一堆终端(根据我要在其中进行的工作来命名各种标签)和程序来设置我的编程环境,例如日常工作。
这是一个人为的示例,它打开一个选项卡,将其命名为“ test”,然后在其中运行简单的命令cd /etc; ls
。最后的$SHELL
部分将强制外壳保持打开状态,以便您可以随后查看其输出并继续使用它(我在Stack Overflow的其他地方了解到了这一点):
gnome-terminal --tab --title="test" --command="bash -c 'cd /etc; ls; $SHELL'"
这是一个更复杂的示例,该示例在同一gnome终端中打开3个单独的选项卡。这正是我的桌面快捷方式所做的事情,因此我可以立即打开一堆编程窗口:
gnome-terminal --tab --title="tab 1" --command="bash -c 'cd /etc; ls; $SHELL'" --tab --title="tab 2" --command="bash -c 'cd ~; ls; $SHELL'" --tab --title="tab 3" --command="bash -c 'cd ~/temp3; ls; $SHELL'"
这是上述命令的分解:
gnome-terminal
=打开一个gnome终端--tab
=打开一个唯一的选项卡以备接下来使用--title="tab 1"
=将此标签命名为“标签1”--command="bash -c 'cd /etc; ls; $SHELL'"
=运行bash -c 'cd /etc; ls; $SHELL'
命令,这只是我作为示例编写的命令;它的作用是:
bash -c
说这是一个bash'c'manmandcd /etc
='c'hange'd'irectory进入“ / etc”路径ls
=“ l”不是此目录的内容$SHELL
=要使外壳保持打开状态,需要使用此秘密消息,以便您可以使用它。如果要打开外壳,请运行命令,然后关闭,只需删除此部分。但是,我希望选项卡保持打开状态,以便使编程变得神奇。:)--tab
部分重新开始以生成选项卡2,然后再次生成选项卡3。根据您的内心需求进行自定义。屏幕截图: