comando do Shell de printf
O comando último capítulo aprendemos Shell eco, neste capítulo aprendemos outra saída Shell comando printf.
comando printf imitar biblioteca C (biblioteca) no procedimento de printf ().
definição padrão, de modo roteiro uso printf melhor do que usar a portabilidade de eco.
printf usando um texto de referência ou parâmetros separados por espaços, pode ser usado fora da cadeia de formato printf, você também pode desenvolver a largura da corda, e assim por diante alinhamento à esquerda e à direita. printf padrão não adiciona automaticamente uma quebra de linha como echo, podemos adicionar \ n manualmente.
printf sintaxe de comando:
printf format-string [arguments...]
Parâmetro Descrição:
- format-string: string de controle de formato
- argumentos: a lista de parâmetros.
Exemplos são os seguintes:
$ echo "Hello, Shell" Hello, Shell $ printf "Hello, Shell\n" Hello, Shell $
Em seguida, eu usar um script para refletir o printf poderosa:
#!/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
Executar o script, a saída é a seguinte:
姓名 性别 体重kg 郭靖 男 66.12 杨过 男 48.65 郭芙 女 47.99
% S% c% d formato% f são espaços reservados
% -10s Consulte uma largura de 10 caracteres (- para alinhado à esquerda, alinhado à direita, disse que não), os caracteres são exibidos em 10 caracteres caracteres largos, se espaço insuficiente é automaticamente preenchido, ele será mais do que o conteúdo mostrar todos eles.
% -4.2f Refere-se ao formato decimal, o que significa .2 2 casas decimais.
Mais exemplos:
#!/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"
Executar o script, a saída é a seguinte:
1 abc 1 abc abcdefabcdefabc def a b c d e f g h i j and 0
sequência de escape do printf
seqüência | explicação |
---|---|
\ A | Aviso de caracteres, geralmente o caractere ASCII BEL |
\ B | retiro |
\ C | Inibição (não mostrado) de saída em quaisquer caracteres de nova linha de fuga (válido apenas na cadeia de parâmetros sob o indicador do formato de b% controlado), e, em quaisquer caracteres deixados nos parâmetros, e quaisquer parâmetros e qualquer estadia subsequente caracteres da cadeia de formato são ignorados |
\ F | FF (formfeed) |
\ N | envoltório |
\ R | Enter (retorno do carro) |
\ t | guia horizontal |
\ V | guia Vertical |
\\ | A barra invertida literal |
\ Ddd | Representar caracteres 1-3 dígitos valor octal. Válido somente na seqüência de formato |
\ 0ddd | Mostrando 1-3 valor octal do personagem |
Exemplos
$ 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 $ #不换行