차이점은 무엇입니까?
./script.sh "$VARIABLE"
그리고
./script.sh ${VARIABLE}
있어요?
답변1
$VARIABLE
${VARIABLE}
독립형 단어인 경우에도 사실상 동일합니다 . 하지만 특히 스크립트에서 다음 예를 확인하세요.
VARIABLE=USER
echo $VARIABLE
당신은 출력을 얻습니다
USER
하지만 입력할 때
echo $VARIABLE1
얻을 것으로 예상
USER1
VARIABLE1
정의된 변수가 없으므로 아무것도 얻지 못합니다.
하지만 만약 당신이 사용한다면
echo ${VARIABLE}1
예상되는 결과를 얻습니다 USER1
.
답변2
숀 J. 고프(Shawn J. Goff)로부터:$VAR 대 ${VAR} 및 인용 여부
VAR=$VAR1은 VAR=${VAR1}의 단순화된 버전입니다. 두 번째는 할 수 있지만 첫 번째는 할 수 없는 일이 있습니다. 예를 들어 배열 인덱스를 참조하거나(이식 가능하지 않음) 하위 문자열을 제거(POSIX-이식 가능)합니다. POSIX 사양의 초보자를 위한 Bash 가이드 및 매개변수 확장의 변수에 대한 추가 정보 섹션을 참조하세요.
rm -- "$VAR1" 또는 rm -- "${VAR}" 처럼 변수 주위에 따옴표를 사용하는 것이 좋습니다. 이는 변수의 내용을 원자 단위로 만듭니다. 변수 값에 공백($IFS 특수 변수의 문자, 기본적으로 공백) 또는 글로빙 문자가 포함되어 있고 이를 인용하지 않은 경우 각 단어는 파일 이름 생성(글로빙)에 고려되며 확장을 통해 다음과 같은 인수가 생성됩니다. 당신이 무엇을 하든.