use*_*064 3 bash shell-script environment-variables
如果我在提问时不清楚,请见谅。提问的时候我会尽量说的很清楚。
在学习嵌入式 Linux 的同时,我们正在为我们的项目设置环境。我们写了一个shell脚本来设置类似这样的环境:
export PROJECT=example-sys
export PRJROOT=/home/karim/${PROJECT}
export TARGET=powerpc-linux
export PREFIX=${PRJROOT}/tools
export TARGET_PREFIX=${PREFIX}/${TARGET}
export PATH=${PREFIX}/bin:${PATH}
cd $PRJROOT
Run Code Online (Sandbox Code Playgroud)
将脚本另存为prjenv.sh
. 当我练习使用./xyz.sh
or运行脚本或任何可执行文件时./abc
,我运行./prjenv.sh
并且 shell 没有抱怨,但是当我export -p
查看变量是否已导出时,我在列表中找不到它们。
后来我注意到,我应该使用. prjenv.sh
,在我运行脚本后,它设置了环境变量。
我想知道是什么样的区别.
和./
以及何时使用哪一种呢?
如果您需要更多信息,请告诉我。
PS:这是我第一次使用 Linux,所以如果我使用的一些技术术语有误,我深表歉意。
./script
将script
位于当前目录中的文件.
作为新进程运行。
. script
使用参数 调用 shell 函数.
(它是 的别名source
)script
。这与在当前 shell 中输入所有包含的行几乎相同。
您不能使用第一个选项设置变量,因为变量仅为新进程设置。变量仅从父级导出到子级,而不是相反。(即被调用进程不能修改当前进程中的变量。)
归档时间: |
|
查看次数: |
358 次 |
最近记录: |