ksh 스크립트의 변수 할당

ksh 스크립트의 변수 할당

ksh 스크립트를 보고 있는데 다음과 같이 정의된 변수가 있는 함수가 보입니다. ksh 스크립트에서 다음 변수 할당이 실제로 무엇을 의미하는지 설명할 수 있는 사람이 있습니까?

temprule="\$${APPLC_NM}"

답변1

temprule"$" 뒤에 변수 값이 할당됩니다 APPLC_NM. 따라서 APPLC_NM"pizza"로 설정하면 temprule"$pizza"가 됩니다.

이것은 temprule="\$$APPLC_NM"똑같은 일을 한다는 점에 유의하십시오. 괄호는 변수 이름 뒤에 변수 이름에 유효한 문자가 오는 경우에만 필요합니다.

답변2

@가 Julie Pelletier지적했듯이 이는 간접 변수나 이름 참조를 생성하는 데 흥미로운 구문입니다. ksh그러나 작업을 수행하는 데 특화된 구문이 있습니다. 이것은 기능 ksh이며 다른 쉘에서는 작동하지 않을 수 있습니다.

좀 더 관용적으로 작성하는 방법 ksh은 다음과 같습니다.

# Set up the nameref:
nameref temprule=APPLC_NM
# Assign value to AAPLC_NM
APPLC_NM=abc
# The above two statements may be executed in any order.

# Now, temprule will contain the value of APPLC_NM:
echo $temprule
abc

이제 $흥미로운 double 이스케이프가 필요하지 않으며 결과는 틀림없이 더 읽기 쉽습니다.

관련 정보