1
나는 sh -c 'bash in here'
을 사용하여 호출 된 복잡한 bash 스크립트를 작성 중이다. 그러나 변수를 설정하려고 할 때 나는 매우 복잡한 동작을합니다 :
sh -c "SOMEVAR=$(expr 1 - 2) && echo $SOMEVAR"
출력이 -1
일 때 이되어야합니다!
내가 이해하는 한, $(expr 1 - 2)
은 -1
으로 평가됩니다. 따라서 본질적으로이 스크립트는 SOMEVAR=-1 && echo SOMEVAR
이며 1
을 반환합니다.
Bash에 대해 이해할 수없는 점은 무엇입니까? 내 대본에 문제가 있습니까?
실행하면'-1'이됩니다. – icktoofay
@icktoofay : 큰 따옴표를 사용했기 때문에 실패했을 때 작은 따옴표를 게시했습니다. 나는 그것을 알아 냈고 내 자신의 질문에 대답했다. 도와 주셔서 감사합니다 :) –
nitpick : 여기에'sh -c 'sh 코드 또는'bash -c'bash 코드가 있어야합니다. 'sh -c 'bash 코드는 여기에 없다. bash는 sh가 할 수없는 일을 할 수 있습니다. – lesmana