在Linux中执行时出现Makefile错误

时间:2012-05-09 04:18:57

标签: linux shell

我的自动化有一个要求。

我需要在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

1 个答案:

答案 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

此代码不需要前两行,但我认为您想要其他内容。