Tôi đang cố gắng đọc đầu ra của một lệnh trong bash bằng cách sử dụng a while loop
.
while read -r line
do
echo "$line"
done <<< $(find . -type f)
Đầu ra tôi nhận được
ranveer@ranveer:~/tmp$ bash test.sh
./test.py ./test1.py ./out1 ./test.sh ./out ./out2 ./hello
ranveer@ranveer:~/tmp$
Sau này tôi đã thử
$(find . -type f) |
while read -r line
do
echo "$line"
done
nhưng nó đã tạo ra một lỗi test.sh: line 5: ./test.py: Permission denied
.
Vì vậy, làm thế nào để tôi đọc từng dòng một bởi vì tôi nghĩ hiện tại nó đang nhét toàn bộ dòng này cùng một lúc.
Yêu cầu đầu ra:
./test.py
./test1.py
./out1
./test.sh
./out
./out2
./hello
while read
phần, xem Hiểu IFS và các câu hỏi được liên kết ở đó.
find
, hãy xem Làm thế nào tôi có thể sử dụng hai lệnh bash trong -exec của lệnh find? hoặc Thực thi chức năng do người dùng xác định trong cuộc gọi find -exec (câu hỏi này chủ yếu là trùng lặp).