คุณสามารถบันทึกข้อความในระดับหนึ่งได้ด้วยการส่งสตริงไปยังcat
กระบวนการบนรีโมทปลายทาง:
echo 'echo $ABC=home_dir' | ssh hostname sudo -s "cat > file"
เครื่องหมายอัญประกาศเดี่ยวป้องกัน$
บนโลคัลสิ้นสุดและสตริงไม่ถูกเห็นโดยเชลล์บนอีกอันเนื่องจากถูกอ่านโดยตรงโดยcat
(ผ่านsudo
) แทนที่จะเป็นอาร์กิวเมนต์ไปยังคำสั่งเชลล์อื่น
ด้วยรหัสของคุณคุณจะต้องใช้เลเยอร์พิเศษในการหลบหนีเพื่อป้องกัน$
:
$ ssh hostname sudo -s <<EOF
echo "\\\$ABC=home_dir" > file
EOF
คุณต้องส่งตัวอักษร\$
ไปยังรีโมตโฮสต์เพื่อให้เชลล์ระยะไกลจะเขียนตัวอักษร$
ลงในไฟล์ คุณสามารถทำให้สิ่งนี้ง่ายขึ้นด้วยการอ้างเครื่องหมาย here-doc:
$ ssh hostname sudo -s <<\EOF
echo "\$ABC=home_dir" > file
EOF