Latest web development tutorials

printf comando shell

El último capítulo hemos aprendido Shell comando echo, en este capítulo aprendemos otra salida de Shell de comandos printf.

comando printf imitar biblioteca C (biblioteca) en el procedimiento de printf ().

Definición estándar, por lo que la escritura de uso printf mejor que usar la portabilidad de eco.

printf utilizando un texto de referencia o parámetros separados por espacios, pueden utilizarse fuera de la cadena de formato printf, también se puede desarrollar el ancho de la cadena, y así sucesivamente alineación a la izquierda y la derecha. printf por defecto no añade automáticamente un salto de línea como echo, podemos añadir \ n manualmente.

printf sintaxis del comando:

printf  format-string  [arguments...]

Descripción de parámetros:

  • formato de cadena: cadena de control de formato
  • argumentos: la lista de parámetros.

Ejemplos son los siguientes:

$ echo "Hello, Shell"
Hello, Shell
$ printf "Hello, Shell\n"
Hello, Shell
$

A continuación, utilizo un guión para reflejar el 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 

Ejecutar la secuencia de comandos, la salida es el siguiente:

姓名     性别   体重kg
郭靖     男      66.12
杨过     男      48.65
郭芙     女      47.99

% S% c% d formato% f son marcadores de posición

-10S% Recomendar a un ancho de 10 caracteres (- para alineado a la izquierda, alineado a la derecha, dijo que no), los caracteres se muestran en 10 caracteres caracteres anchos, si hay espacio suficiente se rellena automáticamente, será más que el contenido mostrar todos ellos.

-4.2f% Se refiere a formato decimal, lo que significa .2 2 cifras decimales.

Más ejemplos:

#!/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" 

Ejecutar la secuencia de comandos, la salida es el siguiente:

1 abc
1 abc
abcdefabcdefabc
def
a b c
d e f
g h i
j  
 and 0

secuencia de escape de printf

secuencia explicación
\ A Advertencia carácter, por lo general el carácter ASCII BEL
\ B retiro
\ C La inhibición (no se muestra) de salida en cualquier carácter salto de línea final (válido sólo en la serie de parámetros bajo el indicador de formato de b% controlado), y, en cualquier carácter que quedan en los parámetros y los parámetros y cualquier posterior estancia en caracteres de cadena de formato se ignoran
\ F FF (avance de página)
\ N Wrap
\ R Enter (Retorno de carro)
\ t pestaña horizontal
\ V pestaña vertical
\\ Una barra invertida literal
\ Ddd Representar personajes valor octal 1-3 dígitos. Válido sólo en la cadena de formato
\ 0ddd Mostrando 1-3 valor octal del carácter

Ejemplos

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