一、”[: too many arguments” error from if 问题
例如下的 shell 脚本:
1 | VARIABLE=$(/some/command); |
如果 $VARIABLE
时一个包含空格或者其他特殊字符的字符串,并且使用了单个方括号。那么该字符串可能会被拆分成多个单词。这些中的每一个都被视为一个单独的参数。
注意:单个方括号和两个方括号区别:https://serverfault.com/questions/52034/what-is-the-difference-between-double-and-single-square-brackets-in-bash
因此无法按照我们想要的去比较。可以将变量用双引号括起来,强制他保持为一个字符串。
1 | VARIABLE=$(/some/command); |