我想知道如何编写Exec.desktop 文件的命令来打开一个新终端并在其中执行一个 shell 脚本。shell 脚本正在运行,所有用户都可以访问。从终端启动脚本时一切正常,但在尝试从 .desktop 文件启动脚本时却没有。
以下是我已经尝试过的一些组合:
Exec=gnome-terminal -x sh -c 'echo hello'
Exec=sh -c 'gnome-terminal echo hello'
Exec=sh -c 'echo hello'
Exec=echo hello
Run Code Online (Sandbox Code Playgroud)
.desktop 终端选项设置为 true。
如何在另一个终端窗口中运行任何命令?
示例:我打开了一个终端窗口,如果我运行类似 的命令apropos editor,则它会在该窗口上运行并输出。但我想在另一个终端窗口(新窗口)上运行相同的命令,而不是在第一个终端的当前窗口上运行。
进一步说明:
我需要suggest-command <command>打开新的终端窗口并运行<command>该(新打开的)窗口中提到的。(suggest-command命令的建议示例在哪里。)
怎么做?
我是 linux shell 脚本的新手。我想编写一个 shell 脚本,它将打开带有多个选项卡的终端;它应该在每个选项卡中运行 rtsp 客户端应用程序。
为此,我已经在这个论坛上解决了问题,并尝试像下面这样编码,
tab="--tab-with-profile=Default -e "
cmd="java RunRTSPClient"
for i in 1 2 3 4 5
do
#
foo="$foo $tab $cmd"
done
gnome-terminal $foo
exit 0
Run Code Online (Sandbox Code Playgroud)
它正在运行并打开带有选项卡的终端窗口,但它会突然关闭。我没有收到任何错误。
如何确定脚本是从命令行调用还是通过双击文件管理器 (Nautilis) 调用?
如果是前者,我在脚本完成时仍然有一个命令提示符,但如果它被双击(或通过 .desktop 文件执行),脚本将在一个窗口中执行,然后消失。我希望窗口在命令提示符下保持打开状态。
我认为脚本可以进行此检查,并且不执行任何操作(如果从命令行调用),或者exec如果通过双击或 .desktop 调用,则最后执行 bash。
没有成功使用方法来检查是否交互或 tty。
cd进入每个选项卡中的不同文件夹(即:运行唯一的命令)。 PS1通过修改其局部变量使每个选项卡具有唯一的标题我想要编写此脚本,以便我可以单击桌面上的脚本并让它打开终端,就像我想要的日常开发环境一样。
\n\n我有这个脚本来尝试打开 3 个终端选项卡,并在选项卡中运行独特的命令:
\n\n#!/bin/bash\n\ngnome-terminal --tab -- bash -ic "set-title title 1; exec bash"\ngnome-terminal --tab -- bash -ic "cd ~; set-title title 2; exec bash"\ngnome-terminal --tab\nRun Code Online (Sandbox Code Playgroud)\n\n当我使用 运行它时./open_tabs.sh,它会打开 3 个新选项卡,但不幸的set-title是无法设置选项卡标题!看来该PS1变量没有随着我的set-title调用而保持设置状态。根据此答案及其下面的评论,可以exec bash保持选项卡打开。
我已经像这样set-title定义了一个函数~/.bashrc。其目的是在任何终端窗口的顶部设置标题字符串。当我手动使用它时它工作得很好。例如:set-title hey how are you?将输入“嘿,你好吗?” 在我的终端窗口的顶部。