linux终端里如何打开脚本,我怎样才能制作一个脚本来打开终端窗口并在其中执行命令?...

问题描述

当我启动我的Ubuntu机器时,我需要运行三个脚本,他们开始在我的开发环境中使用的服务。

为此,我手动打开三个终端并输入命令。

有什么办法可以创建一个脚本来打开三个终端并在其中执行一个命令? (每个命令应该在一个单独的终端窗口中,以便我可以看到他们的输出)。

最佳解决思路

gnome-terminal -e command

要么

xterm -e command

要么

konsole -e command

非常好

terminal -e command

当命令退出时使终端停留:

在konsole中有一个--noclose标志。

在xterm中,有一个-hold标志。

在gnome-terminal中,转到编辑 – >配置文件首选项 – >标题。单击命令选项卡。选择标记为何时命令退出的drop-down菜单中的端子。你应该为它创建一个新的配置文件,然后执行

gnome-terminal --window-with-profile=NAMEOFTHEPROFILE -e command

次佳解决思路

使用Alternatives系统代替hard-coding 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必须是可执行的。

我之前在一个新的终端窗口中运行脚本的尝试可以在revision #2中找到,在我意识到参数可以传递给x-terminal-emulator之前。

第三种解决思路

很简单 –

#!/bin/bash

/etc/init.d/ccpd status

这对于不需要在终端中显示任何内容的其他命令就足够了。但是这里必须看到显示的状态。所以,它需要在终端窗口中运行

#!/bin/bash

gnome-terminal -e "/etc/init.d/ccpd status" --window-with-profile=NAMEOFTHEPROFILE

此处”NAMEOFTHEPROFILE”将被替换为“当命令退出时保留终端”的配置文件的名称。

7be1506eb928a4e0e870056fc17d9b4d.png

3030d9dd36655c4966128fa57f09640c.png

参考资料

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值