在Linux中执行时出现Makefile错误

在Linux中执行时出现Makefile错误,linux,shell,Linux,Shell,我的自动化系统有一个要求 在Linux中,我需要在命令行中将像1、2、3这样的值传递给我的_映像 我在其他make文件中定义了所有这些输入的活动 下面的代码类似于我为自己的需求编写的代码。问题是每当我传递像MY_IMAGE=1、MY_IMAGE=2、MY_IMAGE=3这样的值时 它只打印echo ACT\u DO=XYZ 当我选择2或3时,它不会显示其他信息。有人能检查并更正我的代码吗 export MY_IMAGE MY_IMAGE=$img_value; if [ $img_value :

我的自动化系统有一个要求

在Linux中,我需要在命令行中将像1、2、3这样的值传递给我的_映像

我在其他make文件中定义了所有这些输入的活动

下面的代码类似于我为自己的需求编写的代码。问题是每当我传递像MY_IMAGE=1、MY_IMAGE=2、MY_IMAGE=3这样的值时

它只打印
echo ACT\u 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

据我所知,您的代码在错误的地方引用了一个引号,并且使用了
:=
,这并不意味着什么。它的实现也令人困惑

试试这个:

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

这段代码不需要前两行,但我想您还需要其他代码。

这不是makefile语法。这是一个shell脚本吗?所提到的代码是否符合要求?如果它是shell也可以。这个代码不可能工作:一个
引号丢失了。
:=
看起来也错了(为什么不
=
?)请在发布代码示例时复制并粘贴。你在使用什么shell?据我所知,它看起来像
bash