Poiché ho consigliato printf
in un commento, dovrei probabilmente fornire alcuni esempi del suo utilizzo (sebbene per la stampa di un messaggio di utilizzo, sarei più propenso a utilizzare le risposte di Dennis o di Chris). printf
è un po 'più complesso da usare di echo
. Il primo argomento è una stringa di formato, in cui gli escape (come \n
) sono interpretati sempre; può anche contenere direttive di formato che iniziano con %
, che controllano dove e come sono inclusi eventuali argomenti aggiuntivi. Qui ci sono due diversi approcci per utilizzarlo per un messaggio d'aiuto:
In primo luogo, si potrebbe includere l'intero messaggio nella stringa di formato:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: \nup home page: \n"
Si noti che diversamente echo
, è necessario includere il ritorno a capo finale in modo esplicito. Inoltre, se il messaggio contiene caratteri %
, dovrebbero essere scritti come %%
.Se si voleva includere gli indirizzi bugreport e homepage, possono essere aggiunti del tutto naturale:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: %s\nup home page: %s\n" "$bugreport" "$homepage"
In secondo luogo, si potrebbe utilizzare la stringa di formato per renderlo stampare ogni ulteriore argomento su una riga separata:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: " "up home page: "
con questa opzione, aggiungendo gli indirizzi bugreport e homepage è abbastanza ovvio:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: $bugreport" "up home page: $homepage"
fonte
2012-06-10 23:47:51
Se stai output un messaggio d'aiuto in risposta ad un'invocazione non corretta, si farebbe normalmente inviare quel messaggio a standard error invece di standard output, con 'echo> & 2 ...' –
@MarkReed Il messaggio di utilizzo viene emesso digitando '--help' (che dovrebbe andare a standard out). – helpermethod
Per gli altri che arrivano, maggiori informazioni su "qui documenti" sono disponibili: http://www.tldp.org/LDP/abs/html/here-docs.html –