我有一个shell脚本setmyenv.sh
,如下所示
#!/bin/sh
export PATH=./abc/tools:$PATH
env | grep PATH
当我运行它sh setmyenv.sh
时,我可以看到相应地设置了PATH env。
PATH=./abc/tools:<whatever my existing PATH setting>
然而,在我的命令完成后,如果我在控制台上手动键入env | grep PATH
,我得到了
PATH=<whatever my existing PATH setting>
我丢失了使用setmyenv.sh
设置的设置
看起来environement只在我的脚本运行的生命周期中设置。
即使脚本结束,我怎么能将环境设置为粘性。即脚本的目的是设置环境。?
P / S:我不想在我的.bash_profile
和etc\profile
中设置它,因为我只想在需要时通过调用setmyenv.sh
设置它,但不是每个时间我打开我的控制台。即不是Using .sh script to set an environment variable或How to set global environment variables using shell script .sh
答案 0 :(得分:4)
运行时
sh
它在一个单独的source setmyenv.sh
进程中运行,并且当进程完成时,对PATH的更改将丢失。
您需要获取脚本:
. setmyenv.sh
或
exit
以便它在您当前的shell中运行,并保留所有变量赋值。请记住,setmyenv.sh
脚本中没有任何jQuery.fn.highlight = function (str, className) {
var regex = new RegExp(str, "gi");
return this.each(function () {
$(this).contents().filter(function () {
return this.nodeType == 3 && regex.test(this.nodeValue);
}).replaceWith(function () {
return (this.nodeValue.replace("<", "<").replace(">", ">") || "").replace(regex, function (match) {
return "<span class=\"" + className + "\">" + match + "</span>";
});
});
});
。如果你这样做,那么获取脚本将终止你的shell。
另见: