Shell脚本如果elif用法需要建议

时间:2014-11-04 03:11:11

标签: linux shell

以下是程序

priority="P1"  
if [ $priority=="P3" ]  
then  
    altprt=l5  
elif [ $priority=="P2" ]  
then  
    altprt=l4  
elif [ $priority=="P1" ]  
then  
    altprt=l3  
fi  
echo $altprt

1 个答案:

答案 0 :(得分:0)

如果您的问题是为什么这不起作用?答案是(1)您没有引用变量而(2)< / strong>测试结构[与单个=(3)一起使用,正如jackmann先生指出的那样,您需要在测试结构周围留出一个空间:

priority="P1"  
if [ "$priority" = "P3" ]  
then  
    altprt=l5  
elif [ "$priority" = "P2" ]  
then  
    altprt=l4  
elif [ "$priority" = "P1" ]  
then  
    altprt=l3  
fi  
echo "$altprt"

<强>输出:

l3

您可能还会发现使用compound expressions允许更紧凑的代码具有相同的结果:

priority="P1"  
[ "$priority" = "P3" ] && altprt=l5
[ "$priority" = "P2" ] && altprt=l4
[ "$priority" = "P1" ] && altprt=l3
echo "$altprt"

最后,您还可以使用case来获得相同的结果:

priority="P1"  
case "$priority" in
    "P3" ) altprt=l5;;
    "P2" ) altprt=l4;;
    "P1" ) altprt=l3;;
esac
echo "$altprt"