disons ls
renvoie file1 file2 dir1 dire2 ...
, je veux imprimer you have file1 file2 dir1 dire2 ... in currnent folder
.
Comment puis-je faire cela ?ls | xargs -i echo 'you have {} in current folder'
impressions
you have file1 in current folder you have file2 in current folder you have dir1 in current folder you have dir2 in current folder you have xxx in current folder
aussi, j'ai essayéls |xargs printf 'you have %s %s %s %s in current folder'
mais n'a pas pu le faire fonctionner. car le nombre de fichiers est indéfini. quelle est la bonne syntaxe pour printf
dans ce cas ?
ls | xargs printf 'you have [email protected] in current folder'
est le plus proche que je puisse obtenir, mais cela ne fonctionne pas.
Réponse acceptée :
Ce qui suit fonctionnera mais aura probablement des implications négatives sur la sécurité :
echo "You have" * "in current folder"
IMO un meilleur moyen, mais nécessitant deux lignes serait :
files=(*)
echo "You have ${files[@]} in curent folder"
Avec printf :
files=(*)
printf '%s ' "You have ${files[@]} in current folder"