변수를 스크립트에 전달하기

변수를 스크립트에 전달하기

차이점은 무엇입니까?

./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 특수 변수의 문자, 기본적으로 공백) 또는 글로빙 문자가 포함되어 있고 이를 인용하지 않은 경우 각 단어는 파일 이름 생성(글로빙)에 고려되며 확장을 통해 다음과 같은 인수가 생성됩니다. 당신이 무엇을 하든.

관련 정보