स्वीकार किए गए उत्तर सरल (एक स्तर) उद्धरण के लिए काम करता है:
$ 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मुझे पागल बनाने के रास्ते पर है।