을 사용하여 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
3
Bash FAQ 01- 유용한 정보와 피해야 할 함정에 대한 조언을 읽는 것이 좋습니다 .
—
jw013
이
—
Gilles 'SO- 악마 그만해
while read
부분에 대해서는 IFS 이해 및 관련 질문을 참조하십시오 .
를 사용 하려면 find 명령의 -exec에서 두 개의 bash 명령을 어떻게 사용합니까?를
—
Gilles 'SO- 악마 중지'10
find
참조하십시오 . 또는 find -exec 호출에서 사용자 정의 함수 실행 (이 질문은 대부분 복제본 임)