ฉันพยายามรับเนื้อหาของไดเรกทอรีโดยใช้เชลล์สคริปต์
สคริปต์ของฉันคือ:
for entry in `ls $search_dir`; do
echo $entry
done
โดยที่$search_dir
เป็นเส้นทางสัมพัทธ์ อย่างไรก็ตาม$search_dir
มีไฟล์จำนวนมากที่มีช่องว่างในชื่อ ในกรณีนี้สคริปต์นี้ไม่ทำงานตามที่คาดไว้
ฉันรู้ว่าฉันสามารถใช้งานfor entry in *
ได้ แต่มันจะใช้ได้เฉพาะกับไดเรกทอรีปัจจุบันของฉันเท่านั้น
ฉันรู้ว่าฉันสามารถเปลี่ยนไปยังไดเรกทอรีfor entry in *
นั้นใช้แล้วเปลี่ยนกลับ แต่สถานการณ์เฉพาะของฉันทำให้ฉันไม่สามารถทำได้
ฉันมีสองเส้นทางญาติ$search_dir
และ$work_dir
และฉันต้องทำงานทั้งสองพร้อมกันอ่านพวกเขาสร้าง / ลบไฟล์ในพวกเขา ฯลฯ
แล้วฉันจะทำอย่างไรดี
PS: ฉันใช้ทุบตี
for entry in "$search_dir/*"
ได้ไหมว่าทำไมไม่ทำงาน ทำไมเราต้องวาง/*
นอกเหนือราคา