while loop
ฉันพยายามที่จะอ่านผลลัพธ์ของคำสั่งในทุบตีใช้ที่
while read -r line
do
echo "$line"
done <<< $(find . -type f)
ผลลัพธ์ที่ฉันได้รับ
ranveer@ranveer:~/tmp$ bash test.sh
./test.py ./test1.py ./out1 ./test.sh ./out ./out2 ./hello
ranveer@ranveer:~/tmp$
หลังจากนี้ฉันก็ลอง
$(find . -type f) |
while read -r line
do
echo "$line"
done
test.sh: line 5: ./test.py: Permission denied
แต่มันก็สร้างข้อผิดพลาด
ดังนั้นฉันจะอ่านทีละบรรทัดได้อย่างไรเพราะฉันคิดว่าขณะนี้มันกำลังซัดทั้งบรรทัดในครั้งเดียว
เอาต์พุตที่ต้องการ:
./test.py
./test1.py
./out1
./test.sh
./out
./out2
./hello
while read
ส่วนนี้ให้ดูที่การทำความเข้าใจกับ IFSและคำถามที่เชื่อมโยงอยู่ที่นั่น
find
ให้ดูที่ฉันจะใช้คำสั่ง bash สองคำสั่งใน -exec ของคำสั่ง find ได้อย่างไร หรือเรียกใช้งานฟังก์ชันที่ผู้ใช้กำหนดในการค้นหา -exec call (ซึ่งคำถามนี้ส่วนใหญ่จะซ้ำกัน)