使用可执行命令运行 gnome-terminal

使用可执行命令运行 gnome-terminal

当我使用 -e 运行 gnome-terminal 来执行命令时,用于查找命令的 PATH 不是启动该命令的终端中使用的 PATH

例如:

我打开一个终端并将 PATH 设置为“./:$PATH

输入gnome-terminal -e cluster_node

找不到集群节点。如果我type gnome-terminal -e ./cluster_node

如果我在 /etc/environment 中添加 PATH ./,那么它总是有效/

我认为它没有使用启动它的终端环境 PATH。

答案1

对于新变量,可以将其导出,如:

> export NEWVAR=something

但是,在本例中,PATH 变量由 shell 的初始化脚本(/etc/profile、~/.bashrc 等)设置。父 shell 中对 PATH 的更改会被子 shell 中的初始化脚本忽略。您有以下选项:

  1. 确保您尝试运行的任何内容都位于众所周知的位置(/usr/local/bin 等)
  2. 确保在运行 gnome-terminal 时指定完整路径
  3. 在执行过程中重置变量:

    gnome-terminal -x bash -c'导出 PATH=$PATH:/.; whatever.sh'

相关内容