Bash에서 작은따옴표와 큰따옴표의 차이점
그들은 얼마나 다른가요?
하나의 위치 인수를 받아 터미널에 메시지를 출력하는 스크립트 hello-world.sh가 있다고 가정합니다.
#!/bin/bash
echo "Hello, $1" # using double quotes
실행하다
hello-world.sh Tiberius
산출
# => Hello, Tiberius
그러면 실행되고 예상되는 출력이 제공됩니다. 엄청난!
이제 동일한 스크립트에 작은따옴표를 대신 사용할 때 어떤 일이 발생하는지 살펴보겠습니다.
#!/bin/bash
echo 'Hello, $1' #using single quotes
실행하다
hello-world.sh Tiberius
산출
# => Hello, $1
음, 위의 두 번째 출력에서 결과가 우리가 기대한 것과 다르다는 것을 알 수 있습니다.
무슨 일이에요?
큰따옴표를 사용할 때 bash는 큰따옴표로 묶인 모든 문자를 보호합니다. 즉, bash는 특별한 처리나 의미를 부여하지 않고 모두 읽을 것입니다. 그러나
$
를 만나면 $
를 확장하고 그것이 전달하는 의미로 대체합니다. 이 예에서 이것은 스크립트를 실행할 때 bash에 전달된 이름으로 평가됩니다.반면 작은따옴표는
$
를 포함하여 포함된 모든 항목을 보호합니다. 따라서 스크립트를 실행할 때 bash는 $
를 확장하여 의미를 부여하지 않습니다. 오히려 단순히 리터럴 형식으로 출력합니다. 이것이 두 번째 스크립트에 대한 인수가 전달된 값으로 평가되지 않은 이유입니다.$ 기호를 사용하려면 어떻게 해야 합니까?
$
심볼을 사용하고 싶다면 bash에게 적절할 때 이 심볼을 이스케이프하도록 지시해야 합니다.다음은 예입니다.
#!/bin/bash
echo "Hello, $1! Today you earned \$2." #using $ as a symbol
실행하다
hello-world.sh Tiberius
산출
# => Hello, Tiberius! Today you earned $2.
주요 테이크 아웃
Reference
이 문제에 관하여(Bash에서 작은따옴표와 큰따옴표의 차이점), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hermitex/differences-between-single-and-double-quotes-in-bash-3eog텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)