如何在shell脚本中使用if / else语句

时间:2012-09-28 13:32:14

标签: shell

使用if / else语句时,我在简单脚本上收到错误。 代码:

#!/bin/sh
count=100
if [$count > 3]; then
echo "Test IF"
fi

错误:/ bin / ash:第6行:[100:未找到

5 个答案:

答案 0 :(得分:5)

#!/bin/sh 

count=100;
if [ "$count" -gt 3 ]; then
  echo "Test IF";
fi

更正语法:必须在[]周围使用空格,必须引用参数扩展,-gt适用于[ ]内的数字比较。 sh中的>用作重定向运算符;如果要在算术比较中使用它,则必须使用仅限bash的语法

$(( $count > 3 ))

答案 1 :(得分:0)

shell中的if语句使用命令[。 由于[是一个命令(您也可以使用'test'),因此在编写要测试的条件之前需要一个空格。 要查看条件列表,请键入: 男人测试

您将在手册页中看到:

s1 > s2测试字符串s1是否在字符串s2之后

n1 gt n2测试整数n1是否大于n2

在您的情况下,使用>会工作,因为字符串100出现在字符串3之后,但编写

更合乎逻辑
if [ $count -gt 3 ]; then
   echo "test if"
fi

答案 2 :(得分:0)

#!/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

答案 3 :(得分:0)

这也会做!

#!/bin/sh
count=100
if [ $count -gt 3 ];
then
    echo "Test IF"
fi

答案 4 :(得分:-1)

if [[ "$x" == "true" ]]; then

  echo "value matched"

else

 echo "value doesn't matched"

fi