我最近升级zsh 5.7.1
到了zsh 5.9
,现在我有两个 zsh 可执行文件,分别位于/bin/zsh
(旧文件) 和/usr/local/bin/zsh
。我也已将终端应用程序的常规属性对话框中的登录 shell更改为新路径。
当我打开一个新的终端窗口时,echo ZSH_VERSION
我得到了预期的结果5.9
。但是当我这样做时,echo $SHELL
我仍然得到旧路径。
该如何修复?我的操作系统是 Catalina。
我最近升级zsh 5.7.1
到了zsh 5.9
,现在我有两个 zsh 可执行文件,分别位于/bin/zsh
(旧文件) 和/usr/local/bin/zsh
。我也已将终端应用程序的常规属性对话框中的登录 shell更改为新路径。
当我打开一个新的终端窗口时,echo ZSH_VERSION
我得到了预期的结果5.9
。但是当我这样做时,echo $SHELL
我仍然得到旧路径。
该如何修复?我的操作系统是 Catalina。
我正在使用ZSH_VERSION=5.9
并且有这个脚本,它可以按预期工作:
integer count=3
while true ; do
echo $count
(( count-- ))
if (( count == 0 )) break
done
echo Finally: $count
echo ok
3
它从到倒数1
,然后说:Finally: 0
和ok
。
但是让我们do ... done
用{ ... }
这样的方式替换该块:
integer count=3
while true ; {
echo $count
(( count-- ))
if [[ $count == 0 ]] break
}
echo Finally: $count
echo ok
绝对没有错误消息,但输出令人困惑:
3
Finally: 2
ok
2
Finally: 1
ok
1
我完全不知道为什么会这样,除非解析器有问题。还是我错误地使用了替代的 while 循环语法?当我在刚启动的 shell 中时会发生这种情况。