使用设置了环境变量的方式调用以下脚本。
我需要启动一个终端,然后在该终端内从另一个脚本(utils.createLink(src,dst);
)中读取该变量。
script.sh
它起作用,但是当xfce4-terminal -x sh -c \
"export VAR='${VAR}'
/home/usr/scripts/script.sh"
中包含单引号时则无效。
我还觉得有一种更好的方法可以将环境变量传递给终端,但是我不知道怎么做。
我非常感谢您的帮助,对我的英语感到抱歉。
答案 0 :(得分:0)
该环境的预期功能之一是可以对其进行添加,但是您绝不能从其中删除。将VAR
添加到当前环境中,它将被xfce4-terminal
和该终端启动的任何进程继承。
export VAR
xfce4-terminal -x sh -c /home/usr/scripts/script.sh
如果您不希望在当前环境中使用它,而仅在新终端中使用,则请使用建议的分配。
VAR="$VAR" xfce4-terminal -x sh -c /home/usr/scripts/script.sh
这避免了像您所竞争的那样脆弱的动态脚本构造。
由于xfce4-terminal
本身似乎并不派生新进程,因此我会将所需的值作为参数传递给sh
。
xfce4-terminal -x sh -c 'VAR="$1" /home/usr/scripts/script.sh' _ "$VAR"
-c
的参数仍然是固定的字符串,而不是通过对$VAR
的值进行插值而生成的。