繁体   English   中英

在Linux中覆盖环境变量

[英]Overwriting a environment variable in linux

我希望将路径添加到PATH变量。

我已使用echo$PATH变量复制到名为t1的文件中

echo $PATH > t1

然后我编辑了t1

nano t1

我在路径列表的前面添加了/usr/local/batch:路径并保存了t1。

现在,我想将t1保存到$ PATH中,然后覆盖$ PATH。 例如

cat t1 > $PATH (例如),但收到“歧义重定向”警告。

我在该论坛上阅读了有关如何执行此操作的示例后就知道它可以工作,但是如果我可以再次找到答案,该死的。

这是在UNIX / Linux系统上扩展PATH变量的更通用的方法:

export PATH=/this/is/the/new/directory:$PATH

祝好运

如果您确实要从文件读取PATH:

export PATH=`cat t1`

如果要使用编辑器来编辑变量,而无需使用该编辑器,则可以从moreutils将其通过管道传递到vipe实用程序,然后将其读回。

PATH=$(printf '%s\n' "$PATH"|EDITOR=nano vipe)

(对于专门编辑PATH ,我有一个函数还可以将:转换为换行符并返回:

path_edit () 
{ 
    PATH="$(printf '%s' "$PATH" |tr : '\n'|vipe | tr '\n' : |sed 's/:$//')"
}

如果您没有vipe ,则可以将其替换为:

vipe(){ sh -euc 't=; trap "rm -f $t" EXIT INT TERM; 
                 t=$(mktemp); cat>$t; ${EDITOR:-vi} $t <>/dev/tty>&0; cat $t'; }

因为“>”将覆盖文件的内容,所以可以尝试“ >>”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM