printf
コメントで推奨しているので、おそらくその使用例をいくつか示す必要があります(使用方法のメッセージを印刷する場合は、DennisまたはChrisの回答を使用する可能性が高くなります)。 printf
を使用するよりも少し複雑ですecho
。最初の引数はフォーマット文字列で、エスケープ(など\n
)は常に解釈されます。また%
、で始まるフォーマットディレクティブを含めることもできます。このディレクティブは、追加の引数が含まれる場所と方法を制御します。使用法メッセージに使用する2つの異なる方法を次に示します。
まず、メッセージ全体をフォーマット文字列に含めることができます。
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: \nup home page: \n"
とは異なりecho
、最後の改行を明示的に含める必要があることに注意してください。また、メッセージにたまたま%
文字が含まれている場合は、と書く必要があります%%
。バグレポートとホームページのアドレスを含めたい場合は、自然に追加できます。
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: %s\nup home page: %s\n" "$bugreport" "$homepage"
次に、フォーマット文字列を使用して、追加の各引数を別々の行に出力することができます。
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: " "up home page: "
このオプションを使用すると、バグレポートとホームページのアドレスを追加することはかなり明白です。
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: $bugreport" "up home page: $homepage"
echo >&2 ...