使用 if/else 语句时,我在简单脚本上收到错误。
代码:
#!/bin/sh
count=100
if [$count > 3]; then
echo "Test IF"
fi
错误:/bin/ash:第 6 行:[100:未找到
#!/bin/sh
count=100;
if [ "$count" -gt 3 ]; then
echo "Test IF";
fi
更正语法:在
[
和 ]
周围必须使用空格,参数扩展必须用引号引起来,并且 -gt
适用于 [ ]
内部的数字比较。 sh中的>
用作重定向操作符;如果你想在算术比较中使用它,你必须使用bash-only语法
$(( $count > 3 ))
#!/bin/sh
if [ $var -eq 12 ]; then
echo "This is a numeric comparison if example"
fi
if [ "$var" = "12" ]; then
echo "This is a string if comparison example"
fi
if [[ "$var" = *12* ]]; then
echo "This is a string regular expression if comparison example"
fi
if [[ "$x" == "true" ]]; then
echo "value matched"
else
echo "value doesn't matched"
fi
shell中的if语句使用命令[. 由于 [ 是一个命令(您也可以使用“test”),因此在编写要测试的条件之前需要一个空格。 要查看条件列表,请键入: 男人测试
您将在手册页中看到:
s1 > s2
测试字符串 s1 是否在字符串 s2 之后
n1 gt n2
测试整数 n1 是否大于 n2
在您的情况下,使用 > 可以,因为字符串 100 位于字符串 3 之后,但这样写更符合逻辑
if [ $count -gt 3 ]; then
echo "test if"
fi
这个也行!
#!/bin/sh
count=100
if [ $count -gt 3 ];
then
echo "Test IF"
fi