我有一个最小的调试功能,但是看不到问题。这是重现此问题的最少代码:

#!/bin/zsh

ahead=1
if [[ "$ahead" -ne 0 ]]; then
    echo "test"
else
    echo "testelse"
fi


我从执行此脚本中得到:

./test:4: bad pattern :[[ 1


我不明白问题出在哪里。如果我用tio.run进行测试,它将起作用!
如果我将其粘贴到控制台中,它也可以正常工作。

如果删除shebang,我将得到:
./test: line 2: [[ 1: command not foundtestelse

最佳答案

我真的不知道如何或为什么,但是正如@justsomebody在评论中指出的那样,这是[[$ahead之间的某种奇怪的空白字符。可能是vim或其他内容,如果您有任何线索可能知道的话,那将很高兴。

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

10-07 15:01