出于某种原因,我无法获得 if 语句来测试字符串是否字面上等于星号。我已经尝试了所有我能想到的组合,我不想弄乱文件通配符。请帮忙。
if [ $VAR = "\*" ]; then
* 更新 *
这两个建议都有效。问题显然不在于 * 比较,而在于 if 语句的另一部分。这应该比较是否$VAR
在 0 和 20 之间或是否是通配符。
if [ "$VAR" -gt 0 ] && [ "$VAR" -lt 20 ] || [ "$VAR" = "*" ]; then
IF 语句的另一部分显然搞砸了最后的比较。
* 更新 *
刚刚再次测试并检查了我的语法。当$VAR
在 0 到 20 之间时效果很好(真),当$VAR
超过 20 时它也有效(报告为假),但是一旦我尝试设置$VAR
为 *,if 语句就会崩溃并弹出:
line 340: [: *: integer expression expected