Da ich printf
in einem Kommentar empfohlen habe , sollte ich wahrscheinlich einige Beispiele für seine Verwendung nennen (obwohl ich zum Drucken einer Verwendungsnachricht eher Dennis 'oder Chris' Antworten verwenden würde). printf
ist etwas komplexer zu bedienen als echo
. Das erste Argument ist eine Formatzeichenfolge, in der Escapezeichen (wie \n
) immer interpretiert werden. Es kann auch Formatanweisungen enthalten %
, die damit beginnen , welche und wo zusätzliche Argumente darin enthalten sind. Hier sind zwei verschiedene Ansätze, um es für eine Verwendungsnachricht zu verwenden:
Zunächst können Sie die gesamte Nachricht in die Formatzeichenfolge aufnehmen:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: \nup home page: \n"
Beachten Sie, dass Sie im Gegensatz echo
dazu die letzte neue Zeile explizit einfügen müssen. Wenn die Nachricht %
Zeichen enthält, müssen diese als geschrieben werden %%
. Wenn Sie die Fehlerbericht- und Homepage-Adressen angeben möchten, können diese ganz natürlich hinzugefügt werden:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: %s\nup home page: %s\n" "$bugreport" "$homepage"
Zweitens können Sie einfach die Formatzeichenfolge verwenden, um jedes zusätzliche Argument in einer separaten Zeile zu drucken:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: " "up home page: "
Mit dieser Option ist das Hinzufügen der Bugreport- und Homepage-Adressen ziemlich offensichtlich:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: $bugreport" "up home page: $homepage"
echo >&2 ...