Score:1

การสร้างโฟลเดอร์เมื่อชื่อมี "/" และ " ' "

ธง in
Cas

ฉันกำลังสร้างเส้นทางของไฟล์ (และ มคเดียร์-ing พวกเขา) ตามตัวแปร:

mkdir "$root_folder/$title ($ปี)"

ฉันเจอสถานการณ์ที่ $title เป็น 9/11: ภายในห้อง War Room ของประธานาธิบดี. เดอะ / เป็นปัญหาเนื่องจาก mkdir จะตีความว่าเป็นเส้นทางของโฟลเดอร์ เลยอยากเปลี่ยนใหม่ทั้งหมด / กับ \/ เพื่อให้ mkdir ใช้แทนการคิดว่ามันเป็นเส้นทาง เดอะ ' ในนามยังให้ปัญหา ดังนั้นฉันจึงต้องการแทนที่ทั้งหมดด้วย ' กับ \' แต่มันยากกว่าที่ฉันคิด

เป้าหมายสุดท้ายของฉันคือสร้างโฟลเดอร์ในลักษณะนั้น / และ ' ถูกตีความตามตัวอักษร บางสิ่งที่ฉันได้ลองไปแล้ว:

title=$(echo "$title" | sed -e "s|'|$(echo "\")\'|g")
${title/\//\/}
#----
title=$(echo "$title" | sed -e "s|'|$(echo "\")\'|g" -e "s|/|\/|g")
$ชื่อ
#----
mkdir "$root_folder/'$title ($year)'"
Score:10
ธง cn

เครื่องหมายคำพูดเดี่ยวหรือคู่จะไม่ทำให้เกิดปัญหาใด ๆ ตราบใดที่คุณให้ตัวแปรอ้างอิงอย่างถูกต้องตลอดเวลา

$ title=$(แมว << END_TITLE
นี่คือ "ชื่อเรื่อง" ที่มี 'อัญประกาศสองชนิด'
END_TITLE
)

$ ประกาศ -p ชื่อเรื่อง
ประกาศ -- title="นี่ \"เป็นชื่อเรื่อง\" ที่มี 'อัญประกาศสองประเภท'"

$ mkdir "$title" # ไม่ต้องพยายามบังคับคำพูดเพิ่มเติมที่นี่

$ก้อง$?
0

ชื่อไฟล์ อาจจะไม่ ประกอบด้วย / ไม่ว่าคุณจะพยายามหนีมันมากแค่ไหนก็ตาม Slash เป็นตัวคั่นไดเร็กทอรี คุณจะต้องแทนที่อักขระอื่น สมมติว่าคุณเลือก -:

mkdir "$root_folder/${title//\//-} ($ปี)"

ที่ใช้ bash's การขยายพารามิเตอร์เชลล์ แทนที่จะโทรหาเซด

Jeff Schaller avatar
ru flag
อีกทางเลือกหนึ่งคือปลอมด้วย Unicode [fraction slash U+2044](https://www.compart.com/en/unicode/U+2044) หรือ [division slash U+2215](https://www .compart.com/th/unicode/U+2215)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา