zsh 数字条件导致错误模式

2A-*_*-42 8 if-statement zsh

我有一个缩小的函数来调试,但我看不到问题。这是重现该问题的最少代码:

\n\n
#!/bin/zsh\n\nahead=1\nif [[\xc2\xa0"$ahead" -ne 0 ]]; then\n    echo "test"\nelse\n    echo "testelse"\nfi\n
Run Code Online (Sandbox Code Playgroud)\n\n

我通过执行这个脚本得到:

\n\n
./test:4: bad pattern :[[ 1\n
Run Code Online (Sandbox Code Playgroud)\n\n

我不明白问题出在哪里。如果我用tio.run测试它,它可以工作!\n如果我将它复制粘贴到控制台中,它也可以工作。

\n\n

如果我删除 shebang,我会得到:\n\n./test: line 2: [[\xc2\xa01: command not found\ntestelse\n

\n

2A-*_*-42 5

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

编辑:我要补充的是,这altgr + space创造了导致这种情况的性格。