我在〜/ bin /中有以下脚本,以覆盖gnome-terminal
的默认命令:
#!/usr/bin/env bash
XDG_CONFIG_HOME=~/.config/darkthemesettings /usr/bin/gnome-terminal
我试图让XDG_CONFIG_HOME
变量只能被gnome-terminal看到,但是在出现的终端中,如果我运行任何其他程序,该变量也会在该程序中设置。从终端运行echo $XDG_CONFIG_HOME
给出
/家庭//。配置/ darkthemesettings
我理解如果在不使用export
的情况下设置环境变量,则该变量仅在设置它的脚本中可用,而不在任何子进程中。我不对吗?我怎样才能达到我想要的目标?感谢
答案 0 :(得分:2)
您可以使用env
取消设置终端内运行命令的变量,如下所示:
XDG_CONFIG_HOME=~/.config/darkthemesettings gnome-terminal -x env -u XDG_CONFIG_HOME bash
命令XDG_CONFIG_HOME=~/.config/darkthemesettings
之前的赋值gnome-terminal
设置终端的变量。终端将在-x
选项之后运行参数作为shell命令。该shell命令bash
以env -u XDG_CONFIG_HOME
为前缀,在运行bash
的环境中取消设置变量。
答案 1 :(得分:0)
您的理解不正确。没有export
它们是bash变量。 export
“将”提升为环境变量。
你需要让gnome-terminal运行一个脚本,在运行shell之前取消设置变量。