คำตอบ:
ใช้คำพูด 'ยาก' สำหรับตัวละครที่มีเล่ห์เหลี่ยม:
sudo sh -c "echo '#' > /file"
$
ตัวละคร sudo sh -c 'echo "#" > /file'
ก็จะทำงานเช่นกัน เป็นเพียงแค่บรรทัดสคริปต์ต้นฉบับใช้คำพูดเดียวกันทั้งสองระดับโดยไม่ต้องหลบหนีทำให้sudo sh -c "echo "
ส่วนที่เหลือเป็นความคิดเห็น (อาจเป็นเพราะbash
ตัวเลือกinteractive_comments
)
หากคุณไม่ต้องการใช้เครื่องหมายคำพูดต่างกันเพียงตัวเดียวคุณสามารถหลีกเลี่ยงตัวอักษรแฮชได้:
sudo sh -c "echo "\#" > /file"
เช่นเดียวกับในหลาย ๆ ภาษาสคริปต์คำสั่งเชลล์ตีความอักขระแฮช ( #
) เป็นจุดเริ่มต้นของความคิดเห็น
sudo
(และจากนั้นไปsh -c
) โดยพื้นฐานแล้วมันรันคำสั่งซึ่งเทียบเท่าเพียงecho # > /file
echo
#
ไม่เป็นส่วนหนึ่งของการโต้แย้งไปยัง-c
ตัวเลือก; เท่านั้น"echo "
คือ#
เพียงแค่จุดเริ่มต้นของความคิดเห็นในบรรทัด