ช่องว่างในชื่อโฟลเดอร์


4

ฉันมีชื่อโฟลเดอร์ที่มีช่องว่างระหว่างชื่อ: /Volumes/Img/Horos Data/DATABASE/

ฉันจำเป็นต้องใส่มันในตัวแปรเพื่อใช้ในสคริปต์

ใน terminal ฉันสามารถใช้ \ เพื่อใช้โฟลเดอร์: cd /Volumes/Dados/Horos\ Data/DATABASE/แต่มันไม่ทำงานเมื่อฉันใส่ตัวแปรเช่น:

DESTINY=/Volumes/Dados/Horos\ Data/DATABASE.noindex/
ls $DESTINY

ฉันจะวางลงในตัวแปรได้อย่างไร

คำตอบ:


4

ตัวแปรหรือข้อโต้แย้งทางด้านขวาของคำสั่งขึ้นอยู่กับการแบ่งคำโดยเชลล์ยกเว้นการเสนอราคา คุณสามารถลองสาธิตต่อไปนี้

touch foo\ bar\ baz
#
ls foo\ bar\ baz
foo bar baz
# or
ls "foo bar baz"
foo bar baz
#
var=foo\ bar\ baz
ls $var
ls: bar: No such file or directory
ls: baz: No such file or directory
ls: foo: No such file or directory
#
ls "$var"
foo bar baz

มันใช้งานได้แล้ว !! ขอบคุณมาก!!
Vilefort

4

สามารถใช้เครื่องหมายคำพูดเพื่อหนีช่องว่างเมื่อกำหนดให้กับตัวแปร

var="abc def ghi"

มันไม่ทำงานกับคำพูด! ฉันได้ลองด้วยเครื่องหมายคำพูดคู่และเดี่ยวและส่งคืนข้อผิดพลาด DESTINY = / ปริมาณ / Dados / Horos Data / ฐานข้อมูล / ข้อผิดพลาด = link_stat "/ ปริมาณ / Dados / Horos" ล้มเหลว: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว (2)
Vilefort

... ยกเว้นตอนที่คุณ ใช้ ตัวแปรผ่านสิ่งที่ชอบ blah $var ที่ POSIX คำแบ่งคุณกัด
thrig
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.