허용 된 답변은 간단한 (한 수준) 인용에 효과적입니다.
$ echo $'\'single quote phrase\' "double quote phrase"'
'single quote phrase' "double quote phrase"
명령이 작동하도록하려면 두 번 인용해야합니다.
이 스크립트는 모든 작업을 수행 할 수 있습니다.
#!/bin/bash
quote () {
local quoted=${1//\'/\'\\\'\'};
printf "'%s'" "$quoted"
}
read -r line <<-\_line_to_quote_
'single quote phrase' "double quote phrase"
_line_to_quote_
quote "$line"; echo
quote "echo $(quote "$line")"; echo
스크립트를 실행하여 다음을 얻습니다.
$ script
''\''single quote phrase'\'' "double quote phrase"'
'echo '\'''\''\'\'''\''single quote phrase'\''\'\'''\'' "double quote phrase"'\'''
첫 번째 줄은 간단한 에코를 위해 작동합니다.
$ echo ''\''single quote phrase'\'' "double quote phrase"'
'single quote phrase' "double quote phrase"
두 번째 줄은 큰 따옴표로 묶인 명령에서 작동합니다.
sudo su USER -c 'echo '\'''\''\'\'''\''single quote phrase'\''\'\'''\'' "double quote phrase"'\'''
bash
나를 화나게 만드는 길에 있습니다.