คำตอบที่ได้รับการยอมรับนั้นใช้สำหรับการอ้างอิงแบบง่าย ๆ (หนึ่งระดับ):
$ 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
เป็นวิธีที่จะทำให้ฉันเป็นบ้า