Bash에서 `와 '의 차이점은 무엇입니까? [복사]

Bash에서 `와 '의 차이점은 무엇입니까? [복사]

오늘 나는 실행하면 다음을 발견했습니다.

ldd `which bash`

예상되는 결과를 얻습니다. 하지만 내가 달릴 때

ldd 'which bash'

오류가 발생했습니다../which bash: No such file or directory.

그렇다면 이 유사하게 보이는 두 기호의 차이점은 무엇입니까?

답변1

``라는 이름이 붙었다백틱, 평가 명령.

백틱은 이전 스타일의 명령 대체에 사용됩니다.

foo=`command`

이것

foo=$(command)

대신 구문을 사용하는 것이 좋습니다. 내부 백슬래시 처리는 $()놀라운 일이 아니며 $()중첩하기가 더 쉽습니다.

바라보다http://mywiki.wooledge.org/BashFAQ/082


작은따옴표 '는 문자열의 쉘 확장을 방지하는 데 사용됩니다.

쉘에서 올바르게 인용하는 방법을 배우는 것은 매우 중요합니다.

공백/메타 문자를 포함하는 모든 리터럴은 "큰따옴표"로 처리합니다.모든확장: "$var", "$(command "$var")", "${array[@]}", "a & b". 'single quotes'코드나 텍스트 $'s: 'Costs $5 US'에 대해서는 ssh host 'echo "$HOSTNAME"'을 참조하십시오.
http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words
언제 큰따옴표가 필요합니까?

관련 정보