源、zsh、“.”之间的区别并直接 shell 脚本调用
Difference between source, zsh, "." and directly shell script calling
我有非常简单的脚本(for_loop4.sh),如下所示。
# !/bin/zsh
#
for (( i = 0; i < 3; i++ ))
do
echo $i;
done
我正在为我的 shell 使用 zsh 5.0.7。
当 运行 此脚本使用源、zsh 和 .命令,
它按预期工作。但是,当直接调用这个脚本时,
它失败并显示消息 "Bad for loop variable"。
为什么会这样?
有什么区别?
$ source ./for_loop4.sh
0
1
2
$ zsh ./for_loop4.sh
0
1
2
$ . ./for_loop4.sh
0
1
2
$ ./for_loop4.sh
./for_loop4.sh: 4: ./for_loop4.sh: Syntax error: Bad for loop variable
你的第一行是错误的:
# !/bin/zsh
应该是:
#!/bin/zsh
确保你的 zsh 安装在哪里。可以安装到/usr/目录下。
你可以输入,
$ which zsh
我有非常简单的脚本(for_loop4.sh),如下所示。
# !/bin/zsh
#
for (( i = 0; i < 3; i++ ))
do
echo $i;
done
我正在为我的 shell 使用 zsh 5.0.7。
当 运行 此脚本使用源、zsh 和 .命令, 它按预期工作。但是,当直接调用这个脚本时, 它失败并显示消息 "Bad for loop variable"。
为什么会这样? 有什么区别?
$ source ./for_loop4.sh
0
1
2
$ zsh ./for_loop4.sh
0
1
2
$ . ./for_loop4.sh
0
1
2
$ ./for_loop4.sh
./for_loop4.sh: 4: ./for_loop4.sh: Syntax error: Bad for loop variable
你的第一行是错误的:
# !/bin/zsh
应该是:
#!/bin/zsh
确保你的 zsh 安装在哪里。可以安装到/usr/目录下。
你可以输入,
$ which zsh