Depuis que j'ai recommandé printf
dans un commentaire, je devrais probablement vous donner quelques exemples de son utilisation (bien que pour l'impression d'un message d'utilisation, je serais plus susceptibles d'utiliser Dennis ou Chris réponses). printf
est un peu plus complexe à utiliser que echo
. Son premier argument est une chaîne de format, qui s'en échappe (comme \n
) sont toujours interprétés; il peut aussi contenir des directives de format en commençant par %
, qui, où et comment des arguments supplémentaires sont inclus en elle. Ici, deux approches différentes de l'utiliser pour un message d'utilisation:
Tout d'abord, vous pouvez inclure l'intégralité du message dans la chaîne de format:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: \nup home page: \n"
Notez que, contrairement aux echo
, vous devez inclure le saut de ligne final explicitement. Aussi, si le message arrive à contenir les éventuelles %
personnages, ils doivent être écrits en tant que %%
. Si vous vouliez inclure le rapport de bogue et la page d'accueil adresses, ils peuvent être ajoutés tout naturellement:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: %s\nup home page: %s\n" "$bugreport" "$homepage"
Deuxièmement, vous pouvez simplement utiliser la chaîne de format pour le faire imprimer chaque argument supplémentaire sur une ligne distincte:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: " "up home page: "
Avec cette option, en ajoutant le rapport de bogue et la page d'accueil adresses est assez évident:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: $bugreport" "up home page: $homepage"