我有一个最小的调试功能,但是看不到问题。这是重现此问题的最少代码:
#!/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
创建导致这种情况的字符类型。