할당에 공백이 있어도 인용되지 않은 $PATH가 안전한 이유는 무엇입니까? [복사]

할당에 공백이 있어도 인용되지 않은 $PATH가 안전한 이유는 무엇입니까? [복사]

다음은 어디에서 왔는가https://unix.stackexchange.com/a/154290/674의미는?

일반적으로 zsh 이외의 쉘에서는 값에 공백이나 기타 특수 문자가 포함되어 있으면 큰따옴표 밖의 $PATH가 깨집니다.임무 수행 중에는 안전합니다.

몇 가지 예를 들어주실 수 있나요? 감사해요.

답변1

단순 할당의 변수(예: a=$b)는 정의(예: POSIX 사양)에 의해 정의되며 일반적으로 인용할 필요가 없습니다. 어쨌든 대부분의 경우입니다. 이는 "문자열 분할" 및 "와일드카드"(예: 공백 및 와일드카드)가 이러한 할당에서 확장되지 않기 때문입니다 *.

그 외의 경우에는 할당을 제외한 변수( echo $b)echo "$b"따라서 확장(공백 포함(문자열 분할))은 공백이 포함된 경우 문제를 방지하기 위해 따옴표( )로 묶어야 합니다 . 예를 들어, 예시로 사용하지 않고 echo다른 명령을 사용하는 경우를 생각해 보세요. cmd $b공백이 있으면 여러 인수를 받지만 $b공백 cmd "$b"이 있어도 하나의 인수를 받습니다.

또한보십시오:https://stackoverflow.com/questions/3958681/quoting-vs-not-quoting-the-variable-on-the-rhs-of-a-variable-location

관련 정보