Ponieważ poleciłem printf
w komentarzu, powinienem podać kilka przykładów jego użycia (chociaż do wydrukowania komunikatu o używaniu, bardziej prawdopodobne jest użycie odpowiedzi Dennisa lub Chrisa). printf
jest nieco bardziej skomplikowany w użyciu niż echo
. Jej pierwszym argumentem jest ciąg formatujący, w którym interpretowane są wartości domyślne (jak); może również zawierać dyrektywy formatowania zaczynające się od %
, które kontrolują, gdzie i jak dołączane są dodatkowe argumenty. Oto dwa różne podejścia do używania na komunikat wykorzystania:
Po pierwsze, można obejmować całą wiadomość w ciągu formatu:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: \nup home page: \n"
Należy zauważyć, że w przeciwieństwie do echo
, musi zawierać ostateczną przełamane wyraźnie. Ponadto, jeśli wiadomość będzie zawierała dowolne znaki %
, będą musiały być napisane jako %%
.Jeśli chciał zawierać bugreport i stronę domową adresy mogą być dodawane zupełnie naturalnie:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: %s\nup home page: %s\n" "$bugreport" "$homepage"
Po drugie, można po prostu użyć ciąg formatu, aby wydrukować każdą dodatkowy argument w oddzielnym wierszu:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: " "up home page: "
Dzięki tej opcji dodanie bugreport i stronę domową adresów jest dość oczywista:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: $bugreport" "up home page: $homepage"
Jeśli wyprowadzanie użytkowaniu w odpowiedzi na błędnym wywołaniem, normalnie można wysłać tę wiadomość do błędu standardowego zamiast standardowego wyjścia, z 'echo> i 2 ...' –
@MarkReed Komunikat o użyciu jest wyprowadzany przez wpisanie '--help' (które powinno przejść do standardowego wyjścia). – helpermethod
Dla innych osób, które przychodzą, więcej informacji o "tutaj dokumenty" jest dostępnych: http://www.tldp.org/LDP/abs/html/here-docs.html –