BASH:在我的脚本中设置环境变量不会';不要将其设置在其他任何地方-如何在全球范围内导出?内的简单示例
相反,您应该尝试以下操作:BASH:在我的脚本中设置环境变量不会';不要将其设置在其他任何地方-如何在全球范围内导出?内的简单示例,bash,unix,environment-variables,Bash,Unix,Environment Variables,相反,您应该尝试以下操作: PROMPT> pwd /Users/jon/dev/test PROMPT> ls -al total 8 drwxr-xr-x 3 jon 102B Aug 27 21:34 ./ drwxr-xr-x 14 jon 476B Aug 27 21:33 ../ -rwxr-xr-x 1 jon 147B Aug 27 21:34 init* PROMPT> cat init #!/bin/sh DIR="$( cd "$
PROMPT> pwd
/Users/jon/dev/test
PROMPT> ls -al
total 8
drwxr-xr-x 3 jon 102B Aug 27 21:34 ./
drwxr-xr-x 14 jon 476B Aug 27 21:33 ../
-rwxr-xr-x 1 jon 147B Aug 27 21:34 init*
PROMPT> cat init
#!/bin/sh
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
export SCRIPT_HOME=${DIR%/bin}
echo "SCRIPT_HOME has been set to: $SCRIPT_HOME"
PROMPT> ./init
SCRIPT_HOME has been set to: /Users/jon/dev/test
PROMPT> echo $SCRIPT_HOME
PROMPT> why did that command not work?
-bash: why: command not found
PROMPT>
注意额外的点
和/init
之间的空格。这很重要。它类似于source init
export
使shell变量可用于在其中定义它的shell的任何子进程,但不可用于在其中定义它的shell的父进程。请改用source脚本。
PROMPT>. ./init