2012-05-09 10 views
-2

필자의 자동화에는 하나의 요구 사항이 있습니다.Linux에서 실행 중 메이크 파일 오류가 발생했습니다.

Linux의 명령 행에서 MY_IMAGE에 1, 2, 3과 같은 값을 전달해야합니다.

다른 make 파일에서 이러한 모든 입력에 대한 활동을 정의했습니다.

아래 코드는 필자의 요구 사항과 비슷합니다. 문제는 내가 내가 사람이 2 또는 3 확인하고 내 코드를 수정할 수 선택 때마다에만 echo ACT_DO=XYZ;

그것은 다른 정보를 표시하지 않는 것 인쇄하는 것 MY_IMAGE = 1, MY_IMAGE = 2, MY_IMAGE = 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

이것은 메이크 파일 구문이 아닙니다. 쉘 스크립트인가요? – 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 

,하지만 난 당신이 뭔가 다른 것을 원 가정 :

이보십시오.

관련 문제