celui décrit par Hominidé ?
Version imprimable
celui décrit par Hominidé ?
Du coup un test sur la présence de l'expression "no crontab" dans le crontab utilisateur serait peut être à privilégier:
Code:( crontab -l | grep -v "no crontab" ) >/dev/null && { crontab -u "$USER" -l; echo "#ajout tâche";} | crontab -u "$USER" - || echo "ajout tâche" | crontab -u "$USER" -
comme ça, pas besoin de redirection de la sortie standard.Code:| grep -qv 'no crontab'
on pourrait même se dispenser de l'inversion (-v), sans oublier, par contre, d'inverser les commandes. :)
est-ce que çapourrait fonctionner ?Code:
1
2
3 motif='no crontab' mapfile -t crontabAr < <(crontab -l -u "$USER") { [[ ${crontabAr[@]} =~ $motif ]] && printf '%s\n' "${crontabAr[@]}"; echo "#ajout tâche";} | crontab -u "$USER" -
à défaut d'être portable. :)
PS : la question porte sur le groupement de commandes, pas sur les "bashismes".
PS2 :
en relisant tous ces "bashismes", je me demande si la condition est vraiment nécessairel'ajout de tâche sera effectué, aussi bien que le tableau comporte des données ou qu'il soit vide.Code:
1
2 mapfile -t crontabAr < <(crontab -l -u "$USER") printf '%s\n' "${crontabAr[@]}" "#ajout tâche" | crontab -u "$USER" -
la redirection ne peut pas fonctionner : j'ai oublié de mettre la redirection ! 8O :)
je corrige dans mon message précédent.Code:
1
2 mapfile -t crontabAr < <(crontab -l -u "$USER") #---------------- là--^
J'avais essayé < < mais n'ayant pas espacé le 2eme < du premier, ç'a planté. :roll:
J' avais oublié la syntaxe ( Je pratique peu bash en ce moment ...).
En tout cas, j'apprécie ton approche..
Question : Pourquoi mapfile ne serait pas très portable?
quand je dis "portable", je pense POSIX.