J'essaie de lire le résultat d'une commande en bash en utilisant un fichier while loop
.
while read -r line
do
echo "$line"
done <<< $(find . -type f)
La sortie que j'ai eu
ranveer@ranveer:~/tmp$ bash test.sh
./test.py ./test1.py ./out1 ./test.sh ./out ./out2 ./hello
ranveer@ranveer:~/tmp$
Après cela j'ai essayé
$(find . -type f) |
while read -r line
do
echo "$line"
done
mais cela a généré une erreur test.sh: line 5: ./test.py: Permission denied
.
Alors, comment puis-je le lire ligne par ligne parce que je pense qu’à l’heure actuelle, il est en train d’embrasser toute la ligne en même temps.
Sortie requise:
./test.py
./test1.py
./out1
./test.sh
./out
./out2
./hello
while read
partie, voir Comprendre IFS et les questions qui y sont liées.
find
, voir Comment utiliser deux commandes bash dans l'option -exec de la commande find? ou Exécution d'une fonction définie par l'utilisateur dans un appel find -exec (dont cette question est principalement une copie).