joh*_*717 1 shell bash path shell-script
我创建了一个 shell 脚本,它将检查PATH
. 如果没有,那么它将将该值添加到PATH
环境变量中。
根据echo $PATH
shell 脚本内的运行,已成功添加。但是当我尝试echo $PATH
在命令行中运行时..它没有反映所做的更改。
这是我的代码:
#!/bin/bash
postgresPath="/opt/PostgreSQL/9.2/bin"
echo "Checking PATH env.."
[[ ":$PATH:" != *"$postgresPath"* ]] && export PATH="${PATH}:$postgresPath"
echo $PATH
Run Code Online (Sandbox Code Playgroud)
该脚本在其自己的环境中运行。它不会影响其父 shell(从中启动脚本)的环境,即$PATH
脚本中的更改不会$PATH
在交互式 shell 中发生更改。
一个小例子:
$ echo "$PATH"
/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin
$ ( PATH="hello"; echo "$PATH" )
hello
$ echo "$PATH"
/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin
Run Code Online (Sandbox Code Playgroud)
export
(如果我在子 shell 中再次使用该变量并不重要,PATH
因为它已经导出)
.
我建议使用或获取脚本source
,这将在与当前 shell 相同的环境中执行其中的命令,或者将脚本转换为 shell 函数。
归档时间: |
|
查看次数: |
4937 次 |
最近记录: |