Latest web development tutorials

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