脚本内容如下,没有写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,得到输出结果 ybash ./xxx.sh,得到输出结果 yzsh ./xxx.sh,得到输出结果 xzsh数组下标是从1开始的,所以zsh的结果应该是输出y。
MacOS默认的Shell是zsh,但是执行./xxx.sh结果却不是y
用 man zshmisc ,在 COMMAND EXECUTION 一节可以看到, zsh 在执行脚本的时候,用的是 /bin/sh ,而不是 zsh 。
见: https://superuser.com/a/801175/111337