脚本内容如下,没有写Shebang行
arr=(x y z)
echo ${arr[1]}
- 执行
./xxx.sh
,得到输出结果y
- 执行
bash ./xxx.sh
,得到输出结果y
- 执行
zsh ./xxx.sh
,得到输出结果x
zsh数组下标是从1开始的,所以zsh的结果应该是输出y
。
MacOS默认的Shell是zsh,但是执行./xxx.sh
结果却不是y
脚本内容如下,没有写Shebang行
arr=(x y z)
echo ${arr[1]}
./xxx.sh
,得到输出结果 y
bash ./xxx.sh
,得到输出结果 y
zsh ./xxx.sh
,得到输出结果 x
zsh数组下标是从1开始的,所以zsh的结果应该是输出y
。
MacOS默认的Shell是zsh,但是执行./xxx.sh
结果却不是y
1 回答1.8k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答860 阅读
987 阅读
889 阅读
869 阅读
用 man zshmisc ,在 COMMAND EXECUTION 一节可以看到, zsh 在执行脚本的时候,用的是 /bin/sh ,而不是 zsh 。
见: https://superuser.com/a/801175/111337