我的自动化有一个要求。
我需要在Linux的命令行中将1,2,3等值传递给MY_IMAGE。
我已在其他make文件中定义了所有这些输入的活动。
下面的代码类似于我为我的要求写的。每当我传递MY_IMAGE = 1,MY_IMAGE = 2,MY_IMAGE = 3
等值时,问题就出现了仅打印echo ACT_DO=XYZ;
每当我选择2或3时,它都不显示其他信息。任何人都可以检查并更正我的代码。
export MY_IMAGE
MY_IMAGE=$img_value;
if [ $img_value :="1" ]
then
echo ACT_DO=XYZ;
else
if [ $img_value :="2 ]
then
echo ACT_DO=ABC;
else
if [ $img_value :=3 ]
then
echo ACT_DO=ETC;
else
echo ""$img_value" is unsupported";
exit 1;
fi
fi
fi
答案 0 :(得分:2)
根据我所知,您的代码的引号位置错误,并使用:=
并不代表任何内容。它也令人困惑地实施了。
试试这个:
export MY_IMAGE
MY_IMAGE=$img_value
case "$img_value" in
1 ) echo ACT_DO=XYZ ;;
2 ) echo ACT_DO=ABC ;;
3 ) echo ACT_DO=ETC ;;
* )
echo "\"$img_value\" is unsupported"
exit 1
;;
esac
此代码不需要前两行,但我认为您想要其他内容。