ams*_*ams 6 osx shell zsh shell-script oh-my-zsh
我有以下 shell 脚本
TEST=/foopath
export TEST
Run Code Online (Sandbox Code Playgroud)
它位于一个名为 的文件中,test.sh我在其中运行chmod +x test.sh
当我运行时,./test.sh我希望我可以执行echo $TEST并查看输出/foopath,但我什么也没看到。
$TEST当我运行时,需要进行哪些更改才能使上述脚本导出变量./test.sh。这是 bash 与 zsh 的区别吗?
这是父壳与子壳的区别。
当您运行时test.sh,将启动一个新的 shell 来运行它;该变量在该 shell 内导出。这意味着新的 shell 知道它以及它自己的子 shell。父 shell,即您开始test.sh使用的 shell,根本不受影响(也不可能受影响)。
要查看当前 shell 中的变量,您需要获取脚本:
. test.sh
Run Code Online (Sandbox Code Playgroud)
.(和之间有一个空格test.sh)。test.sh这将在不启动新 shell 的情况下运行。
| 归档时间: |
|
| 查看次数: |
11855 次 |
| 最近记录: |