Latest web development tutorials

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 $                  #不换行