我有一个脚本,我想用它来打开新终端并在其中键入命令。像这样的命令
gnome-terminal
打开一个新终端。
另外,如果我这样做
gnome-terminal -e myprogram1
它将在新打开的终端中执行 myprogram1。但是,如果 myprogram1 完成后我想执行 myprogram2 该怎么办?我不能做类似的事情
gnome-terminal -e myprogram2
因为它将打开一个新终端。
有没有办法在脚本中指定我想要在同一个新终端中执行这myprogram1
两者?myprogram 2
或者我是否必须创建一个新脚本并执行类似的操作
gnome-terminal -e scriptToExecuteMyPrograms1And2
答案1
你可以像这样完成你想要的事情:
$ gnome-terminal -e "bash -c '<cmd1>;<cmd2>;exec $SHELL'"
这将打开<cmd1>
,完成后,它将打开<cmd2>
,最后它会让您进入命令提示符exec $SHELL
。
例如:
$ gnome-terminal -e "bash -c 'vim;vim;exec $SHELL'"
运行vim
,如果我关闭第一个,则启动vim
第二个。vim
当第二个关闭时,我会看到终端提示符。
答案2
尝试gnome-terminal -e "myprogram1; myprogram2"
。您也可以尝试用 a&&
代替;
.
答案3
如果您想在启动终端后执行许多命令,那么更好的方法是编写一个函数,导出该函数并调用该函数。创建一个类似于下面给出的 shell 脚本来适合您的应用程序:
my_function(){
command1
command2
.
.
.
commandn
}
export -f my_function
$(x-terminal-emulator -e "bash -c 'my_function'")
您还可以拥有多个功能。但是,那么您将不得不编写另一个函数,其行为类似于 main ,即调用所有其他函数。因此,您将终端设置为执行此主函数,它将处理其余的事情。
答案4
您可以将程序放入~/.bashrc
文件中
这适用于巴什shell(如果您正在使用它)。每当您通过 tty 或 gnome-terminal 打开终端时,它都会执行。
基本上,您只需在文件末尾添加要执行的程序即可。