D'après le commentaire de pjh à une autre réponse à cette question en remplaçant IFS
avec une variable connue pour ne pas contenir de caractères autres que des espaces blancs.
comment=
who ${comment# This is the command} \
-u ${comment# This is the argument}
Pourquoi les expansions de paramètres ne sont-elles pas citées ? La variable est initialisée avec une chaîne vide. Lorsque l'expansion du paramètre se produit, la variable #
(sans rapport avec le caractère de commentaire du shell #
mais utilisé pour la similarité) tente de retirer le commentaire réel de la valeur du paramètre. Le résultat, bien sûr, est toujours une chaîne vide.
Une expansion de paramètre non citée subit un découpage de mots et une génération de nom de chemin. Dans ce cas, aucun de ces processus ne crée de mots supplémentaires à partir d'une chaîne vide, le résultat est donc toujours une chaîne vide. Une telle chaîne vide est simplement rejetée sans affecter la commande dans laquelle elle apparaît. Ce qui précède est précisément équivalent à
who \
-u
0 votes
Copiez le bloc de code dans un bloc commenté/annoté adjacent. Si vous mettez à jour le code, n'oubliez pas de mettre à jour le bloc de commentaires.
0 votes
Note : ce problème et ses solutions s'appliquent également aux chaînes de caractères multilignes.
2 votes
Pour information, il ne s'agit pas d'une copie de cette question la question liée demande une commande qui utilise des tuyaux... alors que cette question parle d'une commande qui a plusieurs options. ce n'est pas la même chose.
0 votes
Remplacer l'espace avant le symbole de commentaire # par une nouvelle ligne ? Vous pouvez alterner les lignes de continuation avec les lignes de commentaire dans un fichier shell script sans astuces particulières, semble-t-il.