If statement 数字上的zsh条件导致错误模式

If statement 数字上的zsh条件导致错误模式,if-statement,zsh,If Statement,Zsh,我有一个功能,我缩小调试,但我看不到问题。以下是重现问题的最低代码: #!/bin/zsh ahead=1 if [[ "$ahead" -ne 0 ]]; then echo "test" else echo "testelse" fi 我从执行此脚本中获得: ./test:4: bad pattern :[[ 1 我不明白问题出在哪里。如果我测试它,它的工作! 如果我在控制台中复制粘贴它,它也可以工作 如果我移除了shebang,我会得到: /测试:第2行:[[1:未

我有一个功能,我缩小调试,但我看不到问题。以下是重现问题的最低代码:

#!/bin/zsh

ahead=1
if [[ "$ahead" -ne 0 ]]; then
    echo "test"
else
    echo "testelse"
fi
我从执行此脚本中获得:

./test:4: bad pattern :[[ 1
我不明白问题出在哪里。如果我测试它,它的工作! 如果我在控制台中复制粘贴它,它也可以工作

如果我移除了shebang,我会得到:

/测试:第2行:[[1:未找到命令
测试仪

我真的不知道如何或为什么,但正如@justsomeone在评论中指出的那样,
[[/code>和
$ahead
之间有一种奇怪的空格字符。可能是vim或其他什么东西,如果你知道它可能是什么,很高兴知道


Edit:我将添加
altgr+space
创建导致这种情况的字符。

请提供这些命令的输出:
/bin/zsh--version
ls-l/bin/zsh
它对我有效,应该与您的zsh版本一起使用。您的zshrc可能有问题。为什么第5行有一个错误,而第4行的错误模式是,/bin/bash--version的输出是
zsh 5.3.1(x86_64-unknown-linux-gnu)
,对于ls-l/bin/bash-its
-rwxr-xr-x2 root 796256 Mar 21 10:39/bin/zsh
,对于第4行而不是第5行(我提前删除了本地)无法复制。!!获得了此测试的结果。
并且,
[[1:command not found
使它看起来像是在
[
之间有一些奇怪的空格字符“$ahead”