$cat test.sh
ssh HOST -l root -o StrictHostKeyChecking=no -q "/bin/bash -l -c /bin/env | grep -w PATH | grep '\;.'"
$bash -x test.sh
+ ssh HOST -l root -o StrictHostKeyChecking=no -q '/bin/bash -l -c /bin/env | grep -w PATH | grep '\''\;.'\'''
답변1
이는 SSH와 관련이 없습니다. bash의 인수는 명령의 인수를 확장된 형식으로 표시하는 -x
bash 명령에 대한 인수입니다 . set
이것이 큰따옴표로 묶인 문자열이 작은따옴표로 묶인 문자열로 나타나는 이유입니다.
$ cat test.sh
echo "here are 'some single quotes' inside double quotes"
$ bash -x test.sh
+ echo 'here are '\''some single quotes'\'' inside double quotes'
here are 'some single quotes' inside double quotes