我有一个缩小的函数来调试,但我看不到问题。这是重现该问题的最少代码:
\n\n#!/bin/zsh\n\nahead=1\nif [[\xc2\xa0"$ahead" -ne 0 ]]; then\n echo "test"\nelse\n echo "testelse"\nfi\nRun Code Online (Sandbox Code Playgroud)\n\n我通过执行这个脚本得到:
\n\n./test:4: bad pattern :[[ 1\nRun 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
[[我真的不知道如何或为什么,但正如 @justsomebody 在评论中指出的那样,这是和之间的某种奇怪的空白字符$ahead。可能是 vim 或其他东西,如果你知道它可能是什么,那就很高兴知道。
编辑:我要补充的是,这altgr + space创造了导致这种情况的性格。