Kabul edilen cevap basit (bir seviye) alıntı için işe yarar:
$ echo $'\'single quote phrase\' "double quote phrase"'
'single quote phrase' "double quote phrase"
Komutun işe sunulmasını sağlamak için iki kez alıntı yapmanız gerekir.
Bu komut tüm işi yapabilirdi:
#!/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
Almak için komut dosyasını yürütün:
$ script
''\''single quote phrase'\'' "double quote phrase"'
'echo '\'''\''\'\'''\''single quote phrase'\''\'\'''\'' "double quote phrase"'\'''
İlk satır basit yankı için çalışıyor:
$ echo ''\''single quote phrase'\'' "double quote phrase"'
'single quote phrase' "double quote phrase"
İkinci satır çift alıntı komutu için çalışacaktır:
sudo su USER -c 'echo '\'''\''\'\'''\''single quote phrase'\''\'\'''\'' "double quote phrase"'\'''
bash
Beni kızdırmanın yolunda.