임의의 명령을 올바르게 이스케이프하는 방법은 무엇입니까?
예를 들어:
sudo -u chris sh -c 'echo "\"leftright\""'
위 내용의 메아리:
"leftright"
어떻게 에코할까요?
"left'right"
다음을 시도했는데 작동할 것으로 예상했지만 작동하지 않았습니다.
sudo -u chris sh -c 'echo "\"left\'right\""'
어떻게 해석되는지 잘 모르겠습니다.
답변1
sudo -u chris sh -c 'echo "\"left'\''right\""'
답변2
sh -c 'echo "\"left'"'"'right\""'
또는
sh -c 'echo "\"left'\''right\""'
작동합니다.
위의 사항 중 하나라도 통과됩니다.
echo "\"left'right\""
뒤쪽에 -c
.
작은따옴표로 묶인 문자열 안에 있으면 문자열을 닫는 것 외에는 이스케이프가 없습니다.
작은 따옴표를 전달하려면 다음을 사용할 수 있습니다.
"'"
또는
\'
.
쉘은 입력 필드 구분 기호(일반적으로 공백) 없이 인접한 인수를 연결합니다.