Я намагаюся прочитати вихід команди в bash за допомогою 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? або Виконання визначеної користувачем функції у виклику find -exec (який це питання здебільшого є дублікатом).