以下是程序
priority="P1"
if [ $priority=="P3" ]
then
altprt=l5
elif [ $priority=="P2" ]
then
altprt=l4
elif [ $priority=="P1" ]
then
altprt=l3
fi
echo $altprt
答案 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"