如何通过Shell脚本在已打开的终端中运行命令

所以

我正在运行一个script.sh应该打开终端的外壳,然后在此打开的终端中运行一些命令。发生的情况是终端启动,但是在该终端中未执行以下命令。如果有人可以告诉我,通过此方法打开终端后如何在其中script.sh运行其他命令。这是我的script.sh文件:

#!/bin/bash
gksu -u userA /usr/bin/gnome-terminal PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts

因此,第一个命令gksu -u userA /usr/bin/gnome-terminal打开一个终端实例,我问如何运行以下两个命令,PACKAGE_PATH=/home/userA/package1cd /home/userA/scripts在此打开的终端实例中使用script.sh

编辑:

在应用了muru的建议之后,这就是我使用的方法:gnome-terminal -x sudo -u userA bash -c 'PPACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH; cd /home/userA/scripts; source varset.sh; bash'但是它的运行顺序与我所说的顺序不同。

出现在终端的第一行是在variables.sh中找到的一条消息(尽管这应该是要运行的第三条命令),另一件事是没有设置应使用此变量设置的变量,varset.sh例如,当我使用echo $ var1(在variables.sh中找到)不显示任何内容,这意味着未设置变量,唯一在variables.sh中起作用的是显示的echo消息。

目录中出现的第二行是终端工作目录,该目录设置为/home/userA/scripts

第三件事是PACKAGE_PATH=PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH设置$ PACKAGE_PATH变量的此命令不起作用。

因此,如果有人可以建议如何按此顺序运行该命令,以及如何在第一个命令和varset.shshell文件中设置变量

muru

我建议使用以下方法来保持外壳打开:

gnome-terminal -x sudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH; \
  cd /home/userA/scripts; \
  source varset.sh; \
  bash'

但是,如果不导出,则最后一个bash不会受到分配$PACKAGE_PATH或来自source varset.sh它们的分配的影响

所以:

gnome-terminal -x sudo -u userA bash -c 'export PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH; \
  cd /home/userA/scripts; \
  source varset.sh; \
  bash'

varset.sh出口应该做的trick俩。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

运行shell脚本时如何打开终端?

如何通过终端运行Shell脚本

如何通过终端命令在 nautilus 中打开“已加星标”类别

如何编写一个Shell脚本来打开四个终端并在每个终端中执行命令?

bash 脚本。打开新终端并运行命令

打开终端,运行命令并保持终端打开的脚本

运行 shell 脚本打开两个终端并在其中运行命令

如何使用shell提示符打开新终端并在命令行中运行多个命令?

通过上下文菜单在终端中运行脚本(通过终端打开)?

如何在Java中运行已安装的终端命令?

如何从终端中打开已打开的文档?

如何在Swift脚本中运行终端命令?(例如xcodebuild)

如何在python脚本中运行终端命令?

通过shell脚本运行hbase shell命令

如何通过Python脚本在终端中执行命令?

如何通过Shell脚本检测终端是否集中在GUI中?

如何使用已运行的特定命令打开终端?最适合Unity Launcher!

在python中打开终端并运行python脚本

sed命令可在终端中运行,但不能通过bash_aliases或bash脚本运行

在python脚本的终端中运行$ Path命令

如何关闭所有打开的终端窗口(运行shell脚本的窗口除外)

如何关闭所有打开的终端窗口,除了运行 shell 脚本的窗口

在Ionic中访问终端并运行Shell脚本

bash-Shell脚本打开多个终端并执行不同的命令

awk 命令在 shell 脚本中未发现错误,但在终端中运行良好

如何从终端打开终端并运行程序(脚本)?

使用osascript脚本打开终端并运行npm命令

您如何通过终端运行JavaScript脚本?

Shell脚本无法通过终端打开LimeChat