我对zsh脚本有一个奇怪的问题:
#!/usr/bin/env zsh
# in ~/bin/script.sh
set -e
echo before
cd .
echo after
我遇到了一些奇怪的行为 - 看起来cd .
在某些目录中失败了:
% cd ~
% ~/bin/script.sh
before
after
% echo $?
0
% cd ~/Projects
% ~/bin/script.sh
before
% echo $?
1
我不确定导致cd .
失败的目录是什么:
% ls -ld .
drwxr-xr-x 173 rampion staff 5882 Mar 14 15:13 ./
即使更奇怪,如果我使用&&
链接cd .
成功,它就会成功
#!/usr/bin/env zsh
# in ~/bin/script2.sh
set -e
echo before
cd . && echo during
echo after
像这样:
% cd ~
% ~/bin/script2.sh
before
during
after
% echo $?
0
% cd ~/Projects
% ~/bin/script2.sh
before
during
after
% echo $?
0
我不知道出了什么问题。