Une petite astuce pour utiliser la structure de contrôle for en une ligne sur un interpréteur Bash :
1 |
for((i=1;i<=100;i++)); do ./run.sh && echo "Execution #$i"; done |
Dans l’exemple ci-dessous, le script ru.sh du répertoire courant sera exécuté 100 fois.
Note : && signifie que l’on exécutera l’instruction à droite que si l’instruction précédente n’a pas produit d’erreur.
Dans notre cas, on affichera le numéro d’exécution à l’aide de echo uniquement si le script run.sh a été lancé.
Pour réaliser des traitements sur des fichiers, on peux également utiliser la structure suivante :
1 |
for files in `find ~/ -maxdepth 1 -type d`; do echo $files; done |
-type d : uniquement les dossiers
-maxdepth 1 : on ne rentre pas dans les dossiers
ou en plus simple mais moins précis :
1 |
for files in ~/*; do echo $files; done |
Un exemple de one-liner avec un while
1 |
while true; do date +%s%N; sleep 0.1; done |
Mais dans le cas précédent, peut-être que la commande watch ferait l’affaire:
1 |
watch -n 0,1 'date +%s%N' |
effectuez un man watch pour en savoir plus sur cette commande 😉