다음은 어디에서 왔는가https://unix.stackexchange.com/a/154290/674의미는?
일반적으로 zsh 이외의 쉘에서는 값에 공백이나 기타 특수 문자가 포함되어 있으면 큰따옴표 밖의 $PATH가 깨집니다.임무 수행 중에는 안전합니다.
몇 가지 예를 들어주실 수 있나요? 감사해요.
답변1
단순 할당의 변수(예: a=$b
)는 정의(예: POSIX 사양)에 의해 정의되며 일반적으로 인용할 필요가 없습니다. 어쨌든 대부분의 경우입니다. 이는 "문자열 분할" 및 "와일드카드"(예: 공백 및 와일드카드)가 이러한 할당에서 확장되지 않기 때문입니다 *
.
그 외의 경우에는 할당을 제외한 변수( echo $b
)예echo "$b"
따라서 확장(공백 포함(문자열 분할))은 공백이 포함된 경우 문제를 방지하기 위해 따옴표( )로 묶어야 합니다 . 예를 들어, 예시로 사용하지 않고 echo
다른 명령을 사용하는 경우를 생각해 보세요. cmd $b
공백이 있으면 여러 인수를 받지만 $b
공백 cmd "$b"
이 있어도 하나의 인수를 받습니다.