12 다음 두 가지 실행 결과가 다른 이유는 무엇입니까? (최종 명령에서 변수에 큰 따옴표가 필요합니다) $ sudo su -c "echo `cat /root/root_file`" cat: /root/root_file: Permission denied $ sudo su -c 'echo `cat /root/root_file`' Yay, highly classified content! bash permissions sudo bash-scripting — 앰비 덱스 소스
19 Bash 는 명령이 실행 되기 전에 일련의 확장 을 수행합니다 ( sudo이 경우). 첫 번째 경우 명령 대체는 큰 따옴표로 묶여 있기 때문에 수행되므로 오류가 발생합니다. 두 번째 경우 작은 따옴표는 확장을 방지하므로 루트 셸이 실행될 때까지 백틱이 대체되지 않습니다. https://www.gnu.org/software/bash/manual/bashref.html#Quoting 도 참조하십시오. — 글렌 잭맨 소스
6 첫 번째 예에서 백틱은 루트가 아닌 쉘로 평가됩니다. 함께 시도 sudo su -c "echo `whoami`" 작은 따옴표 '가 있는 두 번째 문자열에서 전체 문자열 echo `cat /root/root_file`이 루트 셸로 전달됩니다. — 마테오 소스