다른 bash 스크립트를 호출하고 두 번째 스크립트에서 문자열 반환 값을 가져 오는 bash 스크립트가 있습니다. 그 문자열을 하드 코드 된 값과 비교하려고합니다. 비록 그것이 옳다고 생각하더라도 if 문을 건너 뛰고 else로 이동합니다.Bash 스크립트의 문자열 비교가 예상대로 작동하지 않습니다.
이returnVar=$(/bin/sh ./returnVar.sh ${1})
echo variable from second script = $returnVar
if [ "$returnVar" == "Value-Enabled false" ] ; then
variableName="variable1"
#do other stuff here
elif [ "$returnVar" == "Value-Enabled true" ] ; then
variableName="variable2"
#do other stuff here
else
echo error
exit 1
fi
이 staement :
이 두 번째 스크립트 = "$ returnVar"
에서 변수를 에코
답을 반환 할 것 같다 여기 는 일부 코드, 단지 변경 변수 이름입니다 "Value-Enabled false"를 원하지만 비교가 작동하지 않습니다. 아무도 내가 잘못 가고있는 것을보고 도울 방법을 알 수 있습니까?나는 또한 내가 원하는 문자열로 returnVar를 하드 코딩하려고 시도했다. 그래서 내가 모르는 뭔가가 잘못되었습니다. 사전에
감사합니다!
'echo $ X {returnVar} X "에 공백이 포함되어 있는지 확인 하시겠습니까? – halfbit
echo "X $ {returnVar} X"출력을 내십시오 Line1 : X Line2 : 값 사용 가능 falseX 즉 처음에 줄 바꿈 문자가 있음을 의미합니까? 잘못된 형식에 사과드립니다. 제대로 작동하지 못했습니다. ( –
맞다면'echo "X $ {returnVar} X"''returnVar'의 앞과 뒤에 X가 최소 2 개만 반환됩니다 스크립트에서 echo가있는 줄에) 질문 : 'returnVar'에 앞뒤 공백이 있습니까? (X로 둘러싸인 경우 표시됩니다.) – halfbit