Bonjour, Pour info : tutorial bash http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/
Cassis ----- Mail d'origine ----- De: Marc Chantreux <m...@unistra.fr> À: l0f...@tuta.io Cc: Debian User French <debian-user-french@lists.debian.org> Envoyé: Thu, 25 Mar 2021 09:02:24 +0100 (CET) Objet: Re: HS: petite question bash et variable en argument d'une commande salut, > Comme indiqué de manière très détaillée sur > https://mywiki.wooledge.org/BashFAQ/050 (désolé c'est en anglais), stocker des commandes dans des variables est très hasardeux. je ne lit plus jamais qu'en diagonale toute litterature spécifique à bash mais oui: les choses sont compliquées voir impossibles dans une chaine. par contre ... > La façon la moins risquée est de passer par un tableau (d'ailleurs > t'avais évoqué l'idée dans ton message initial). non! déjà: le seul tableau que posix connaisse est $@ donc date_args=( --date="1 days ago" ) date "${date_args[@]}" "+%A %d %B" nécessite au moins mksh pour être lu. et si tu utilises plus gros: je te conseille de passer tout de suite du coté de zsh mais rien ne justifie de sortir un veau comme bash dans le cas présent. ensuite: la façon la moins risquée s'appelle une fonction et c'est même fait pour. ca permet de surcroit de profiter * de la localisation des variables dans le contexte de la fonction. * du paramétrage d'une valeur par défaut exemple: mydate () date -d"${1:--1day}" '+%A %d %B' mydate mydate tomorrow me donne mercredi 24 mars vendredi 26 mars autre manière de faire pour éviter le quoting hell: xargs https://pubs.opengroup.org/onlinepubs/9699919799/utilities/xargs.html date=tomorrow # des trucs ... <<. xargs -d'\n' date -d ${date:--1day} +%A %d %B . xargs prend aussi un fichier, du coup tu peux composer ta commande petit à petit exec 9>/tmp/mydate >&9 echo "-d ${date:--1day}" >&9 echo '+%A %d %B' exec 9>&- xargs -a /tmp/mydate -d'\n' date hth bonne journée marc