변수의 배쉬 변수 대체와 밑줄 변수 BUILDNUMBER는 값 230으로

변수 BUILDNUMBER는 값 230으로 설정됩니다 230_. 명령에 대해 인쇄 될 것으로 예상 echo $BUILDNUMBER_되지만 출력은 아래와 같이 비어 있습니다.

# echo $BUILDNUMBER_

# echo $BUILDNUMBER
230



답변

이 명령 echo $BUILDNUMBER_$BUILDNUMBER_설정되지 않은 변수의 값을 인쇄합니다 (밑줄은 Jeff Schaller가 명시 적으로 언급 한대로 변수 이름에 유효한 문자 임)

변수 이름 주위에 중괄호 (중괄호)를 적용하거나 가장 엄격한 printf도구를 사용해야합니다 .

echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"

추신 : 항상 변수를 인용하십시오.


답변

George Vassiliou가 이미 설명했듯이 , $BUILDNUMBER_대신 변수 를 인쇄하기 때문 입니다 $BUILDNUMBER. 원하는 것을 얻는 가장 좋은 방법 ${BUILDNUMBER}_은 George가 설명한대로 사용 하는 것입니다. 몇 가지 옵션이 더 있습니다 :

$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_


답변