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”
。