を使用して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
。
だから、私は現在それが一度に行全体を丸lurみしていると思うので、どのように行ごとに読むのですか?
必要な出力:
./test.py
./test1.py
./out1
./test.sh
./out
./out2
./hello
3
Bash FAQ 01-避けるべきトラップに関する有用な情報とアドバイスをたくさん読むことをお勧めします。
—
jw013
while read
パートについては、IFSの理解とそこにリンクされている質問を参照してください。
使用するために
—
ジル「SO-悪であるのをやめる」
find
、参照私はfindコマンドの-execで2つのbashのコマンドを使用するにはどうすればよいですか?または、find -exec呼び出しでユーザー定義関数を実行します(この質問はほとんどが重複しています)。