Próbuję odczytać dane wyjściowe polecenia w bash za pomocą while loop
.
while read -r line
do
echo "$line"
done <<< $(find . -type f)
Mam wynik
ranveer@ranveer:~/tmp$ bash test.sh
./test.py ./test1.py ./out1 ./test.sh ./out ./out2 ./hello
ranveer@ranveer:~/tmp$
Po tym próbowałem
$(find . -type f) |
while read -r line
do
echo "$line"
done
ale wygenerował błąd test.sh: line 5: ./test.py: Permission denied
.
Jak mam to odczytać wiersz po wierszu, ponieważ myślę, że obecnie rozmazuje całą linię naraz.
Wymagana moc wyjściowa:
./test.py
./test1.py
./out1
./test.sh
./out
./out2
./hello
while read
części zobacz Zrozumienie IFS i powiązane z nim pytania.
find
dowiedzieć się więcej na temat używania , zobacz Jak mogę użyć dwóch poleceń bash w -exec polecenia find? lub Wykonywanie funkcji zdefiniowanej przez użytkownika w wywołaniu find -exec (którego to pytanie jest w większości duplikatem).