Da ich empfohlen habe printf
in einem Kommentar, sollte ich wahrscheinlich einige Beispiele für die Verwendung geben (obwohl ich für den Druck einer Verwendungsnachricht eher die Antworten von Dennis oder Chris verwenden würde). printf
ist etwas komplexer in der Anwendung als echo
. Das erste Argument ist ein Formatstring, in dem Escapes (wie \n
) sind immer interpretiert; sie kann auch Formatanweisungen enthalten, die mit %
, die bestimmen, wo und wie zusätzliche Argumente in den Text aufgenommen werden. Hier sind zwei verschiedene Ansätze zur Verwendung für eine Verwendungsmeldung:
Zunächst könnten 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 im Gegensatz zu echo
müssen Sie den abschließenden Zeilenumbruch explizit einfügen. Auch wenn die Nachricht zufällig irgendetwas enthält %
Zeichen, müssten sie geschrieben werden als %%
. Wenn Sie die Bugreport- und Homepage-Adressen mit einbeziehen möchten, können diese 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önnten Sie einfach die Formatzeichenfolge verwenden, um jedes zusätzliche Argument in einer eigenen Zeile auszugeben:
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"