2012-05-09 35 views
-2

我在自動化中有一個需求。在Linux中執行時發生Makefile錯誤

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

這不是makefile語法。它是一個shell腳本嗎? – Beta

+0

上述代碼對於要求是否正確?如果它是殼也很好。 – user1206219

+0

這段代碼不可能工作:缺少一個'''引號,':='看起來也不對(爲什麼不是'='?)當你發佈代碼示例時,請複製並粘貼 – reinierpost

回答

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 

前兩行並不需要這種代碼,但我想你想的是別的東西。

相關問題