스크립트에 변수 전달

스크립트에 변수 전달

차이점이 뭐야:

./script.sh "$VARIABLE"

그리고

./script.sh ${VARIABLE}

당신은 있나요?

답변1

$VARIABLE서로 다른 단어라면 ${VARIABLE}실제로는 같습니다. 하지만 특히 스크립트에서 다음 예를 참고하세요.

VARIABLE=USER
echo $VARIABLE

당신은 출력을 얻습니다

USER

하지만 입력할 때

echo $VARIABLE1

얻을 것으로 예상

USER1

VARIABLE1변수가 정의되지 않았기 때문에 아무것도 얻지 못합니다.

하지만 만약 당신이 사용한다면

echo ${VARIABLE}1

예상되는 결과를 얻습니다 USER1.

답변2

Sean J. Goff의 글:$VAR 대 ${VAR} 및 인용 여부

VAR=$VAR1은 VAR=${VAR1}의 단순화된 버전입니다. 두 번째는 할 수 있지만 첫 번째는 할 수 없는 일이 있습니다. 예를 들어 배열 인덱스 참조(이식 가능 아님) 또는 하위 문자열 제거(POSIX - 이식 가능) 등이 있습니다. Bash 초보자 가이드의 "변수에 대한 추가 정보" 섹션과 POSIX 사양의 매개변수 확장을 참조하세요.

rm -- "$VAR1" 또는 rm -- "${VAR}"과 같이 변수 주위에 따옴표를 사용하는 것이 좋습니다. 이는 변수의 내용을 원자 단위로 만듭니다. 변수 값에 공백(기본적으로 공백인 $IFS 특수 변수의 문자) 또는 와일드카드 문자가 포함되어 있고 이를 인용하지 않으면 각 단어는 파일 이름 생성(와일드카드)으로 간주되고 해당 확장은 생성됩니다. 당신이 무엇을 하든.

관련 정보