comando di shell printf
L'ultimo capitolo abbiamo imparato Shell comando echo, in questo capitolo si apprende un'altra uscita Shell di comando printf.
comando printf imitare libreria C (biblioteca) nella procedura di printf ().
Definizione standard, in modo da copione uso printf meglio che usare portabilità eco.
printf usando un testo di riferimento o parametri separati da spazi, può essere utilizzato al di fuori della stringa di formato printf, si può anche sviluppare la larghezza della stringa, ecc allineamento sinistra e destra. printf default non aggiunge automaticamente una interruzione di linea, come un'eco, possiamo aggiungere \ n manualmente.
printf sintassi dei comandi:
printf format-string [arguments...]
Descrizione Parametro:
- format-string: stringa di controllo del formato
- argomenti: la lista dei parametri.
Esempi sono i seguenti:
$ echo "Hello, Shell" Hello, Shell $ printf "Hello, Shell\n" Hello, Shell $
Poi, io uso uno script per riflettere il potente printf:
#!/bin/bash # author:本教程 # url:www.w3big.com printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543 printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
Eseguire lo script, l'output è il seguente:
姓名 性别 体重kg 郭靖 男 66.12 杨过 男 48.65 郭芙 女 47.99
% S% c% d formato% f sono segnaposto
% -10s Fare riferimento ad una larghezza di 10 caratteri (- per allineato a sinistra, allineato a destra, ha detto di no), tutti i caratteri vengono visualizzati in 10 caratteri caratteri di larghezza, se lo spazio insufficiente viene inserito automaticamente, sarà più che contenuto mostrare tutti loro.
% -4.2f Si riferisce al formato decimale, il che significa .2 2 cifre decimali.
Altri esempi:
#!/bin/bash # author:本教程 # url:www.w3big.com # format-string为双引号 printf "%d %s\n" 1 "abc" # 单引号与双引号效果一样 printf '%d %s\n' 1 "abc" # 没有引号也可以输出 printf %s abcdef # 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用 printf %s abc def printf "%s\n" abc def printf "%s %s %s\n" a b c d e f g h i j # 如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替 printf "%s and %d \n"
Eseguire lo script, l'output è il seguente:
1 abc 1 abc abcdefabcdefabc def a b c d e f g h i j and 0
sequenza di escape di printf
sequenza | spiegazione |
---|---|
\ A | Attenzione carattere, di solito il carattere ASCII BEL |
\ B | ritiro |
\ C | Inibizione (non mostrato) Uscita alcun carattere di fine riga (valido solo nella stringa di parametro sotto l'indicatore formato b% controllata), e, in tutti i caratteri a sinistra nei parametri, e gli eventuali parametri e ogni successiva permanenza a caratteri della stringa formato vengono ignorati |
\ F | FF (formfeed) |
\ N | avvolgere |
\ R | Invio (ritorno a capo) |
\ T | scheda orizzontale |
\ V | scheda verticale |
\\ | Una barra rovesciata letterale |
\ Ddd | Rappresentare caratteri 1-3 cifre valore ottale. Valido solo nella stringa di formato |
\ 0ddd | Mostrando 1-3 valore ottale del carattere |
Esempi
$ printf "a string, no processing:<%s>\n" "A\nB" a string, no processing:<A\nB> $ printf "a string, no processing:<%b>\n" "A\nB" a string, no processing:<A B> $ printf "www.w3big.com \a" www.w3big.com $ #不换行