【发布时间】:2018-12-06 22:42:06
【问题描述】:
我正在尝试在 bash 中将 code , 更改为 code .,但我遇到了一堆错误。这应该可以。
code() {
if [[ $1 == ,]];
then
code .
else
code $1
fi
return 1
}
由于分号,它给了我解析错误
如果我去掉分号,它会给我预期的条件:$1
如果我在, 中添加引号并重新添加分号,如果在 `;' 附近出现解析错误
如果我保留引号并删除分号,我会得到预期的条件:$1
如果我删除分号并转义 , 它实际上只是关闭了终端窗口。
这里发生了什么?这应该可以工作。
【问题讨论】:
-
,和]]之间需要一个空格。 -
将您的代码粘贴到 shellcheck.net。
-
我将它粘贴到 shellcheck.net 并添加了空格,我收到了这个错误:第 1 行:code() { ^-- SC2148:提示取决于目标 shell 而你的未知。添加一个shebang。第 6 行:代码 $1 ^-- SC2086:双引号以防止通配符和分词。
-
您是在专门询问 Bash;为什么这也被标记为zsh?
-
嗨,tripleee,您找到的副本是什么?你能链接到它吗?