-2

我对自动化有一个要求。

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

1 回答 1

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

此代码不需要前两行,但我想您希望它用于其他内容。

于 2012-05-09T11:11:04.050 回答