오늘 나는 실행하면 다음을 발견했습니다.
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
언제 큰따옴표가 필요합니까?