Da ich printfin 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). printfist 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 echodazu 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 ...