Saya mencoba membaca output dari sebuah perintah di bash menggunakan a while loop
.
while read -r line
do
echo "$line"
done <<< $(find . -type f)
Output yang saya dapatkan
ranveer@ranveer:~/tmp$ bash test.sh
./test.py ./test1.py ./out1 ./test.sh ./out ./out2 ./hello
ranveer@ranveer:~/tmp$
Setelah ini saya mencoba
$(find . -type f) |
while read -r line
do
echo "$line"
done
tapi itu menghasilkan kesalahan test.sh: line 5: ./test.py: Permission denied
.
Jadi, bagaimana saya membacanya baris demi baris karena saya pikir saat ini sedang menghirup seluruh baris sekaligus.
Output yang dibutuhkan:
./test.py
./test1.py
./out1
./test.sh
./out
./out2
./hello
while read
bagian ini, lihat Memahami IFS dan pertanyaan yang ditautkan di sana.
find
, lihat Bagaimana saya bisa menggunakan dua perintah bash di -exec dari perintah find? atau Menjalankan fungsi yang ditentukan pengguna dalam panggilan -exec find (yang sebagian besar merupakan duplikat dari pertanyaan ini).