ฉันมีสคริปต์ที่ scp เป็นไฟล์จากโฮสต์ระยะไกลกลับสู่ท้องถิ่น บางครั้งชื่อไฟล์มีช่องว่าง scp ไม่ชอบช่องว่างในชื่อไฟล์ ด้วยเหตุผลบางประการความพยายามของฉันในการจัดการช่องว่างไม่ได้ส่งผลให้เส้นทาง scp ที่ถูกต้อง
รหัส:
PATH=/var/root/Documents/MyFile OG-v1.2.3.pkg
scp $PATH Me@10.1.10.33:/Users/Me/Desktop
ผลลัพธ์ใน
Cannot find directory: var/root/Documents/MyFile
Cannot find directory: OG-v1.2.3.pkg
การใส่ PATH ในเครื่องหมายคำพูด"$PATH"
ทำให้เกิดข้อผิดพลาดเดียวกัน
การสลับช่องว่างสำหรับช่องว่างที่หลบหนียังไม่ทำงานแม้ว่าเท่าที่ฉันสามารถบอกได้ก็ควรจะ:
ESC_PATH=${PATH/' '/'\ '}
แม้ว่าการพิมพ์พา ธ ที่หลบหนีแสดงว่าการแก้ไขทำงานได้:
echo $ESC_PATH
> /var/root/Documents/MyFile\ OG-v1.2.3.pkg
$PATH
สำหรับตัวแปรของคุณเองเพราะเทอร์มินัลของคุณต้องการมัน