可以为以下命令临时设置PATH。此外,可以在脚本中设置PATH,该脚本永久保留(在该终端或会话中)。如何在脚本中设置全局有效的PATH,而不是在脚本完成后设置?
示例:
PATH=$PATH:/path1 path1 is valid only for this line
export PATH=$PATH:/path2
path2 is valid for this line
and this line too
I like it
exit
> path2 is still valid after the script finishes
> and when I type commands here manually
> I don't like it
答案 0 :(得分:17)
根本不是真的。 如果您编写脚本并更改$ PATH变量,则更改仅在脚本中生效:
vi test.sh
文件内的:
#!/bin/bash
export PATH="$PATH:test"
让我们测试一下:
echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/matteo/.local/bin:/home/matteo/bin:./bin:/home/matteo/.local/bin:/home/matteo/bin:./bin
chmod ug+x test
./test
echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/matteo/.local/bin:/home/matteo/bin:./bin:/home/matteo/.local/bin:/home/matteo/bin:./bin
相同的输出。此更改仅在脚本内有效!
答案 1 :(得分:2)
我认为您正在寻找“源”命令(Linux)。
首先在文件中写入设置路径命令(或其他内容),例如loadMyEnvironment.sh
#!/bin/bash
export PATH="$PATH:test"
export MESSAGE="Now i am available on the current shell"
现在,在外壳中输入
> source ./loadMyenvironment.sh
现在,在当前shell中,您可以检查是否已加载环境。
> echo $MESSAGE
Now i am available on the current shell
希望这会有所帮助。