Команда Shell Printf
В последней главе мы узнали, Shell эхо команды, в этой главе мы узнаем еще один выходной Shell команды Printf.
Команда Printf имитировать C библиотеки (библиотека) в процедуре Е ().
Стандартное определение, поэтому использование Printf сценарий лучше, чем при использовании эхо-портативность.
Printf с использованием опорного текста или параметров, разделенных пробелами, могут быть использованы за пределами строки формата Printf, вы можете также развивать ширину строки, и так далее левого и правого выравнивания. По умолчанию Printf не добавляет автоматически разрыв строки, как эхо, мы можем добавить \ п вручную.
Printf синтаксис команды:
printf format-string [arguments...]
Параметр Описание:
- Формат-строка: Строка управления форматом
- Аргументы: список параметров.
Примерами могут служить следующие:
$ echo "Hello, Shell" Hello, Shell $ printf "Hello, Shell\n" Hello, Shell $
Далее, я использую скрипт, чтобы отразить мощный 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
Выполните сценарий, вывод выглядит следующим образом:
姓名 性别 体重kg 郭靖 男 66.12 杨过 男 48.65 郭芙 女 47.99
% S% C% d формат% F заполнители
% -10s См шириной 10 знаков (- для по левому краю, по правому краю, сказал, что нет), все символы отображаются в 10 символов широких символов, если недостаточно места автоматически заполняется, это будет больше, чем содержание показать все из них.
% -4.2f Относится к десятичном формате, что означает .2 2 знака после запятой.
Другие примеры:
#!/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"
Выполните сценарий, вывод выглядит следующим образом:
1 abc 1 abc abcdefabcdefabc def a b c d e f g h i j and 0
Последовательность выхода PRINTF в
последовательность | объяснение |
---|---|
\ A | Предупреждение характер, как правило, ASCII BEL символа |
\ B | отбой |
\ C | Ингибирование (не показан), выход в любой символ новой строки символов (действителен только в строке параметров при% B индикатора формата контролируемой), и в любых оставшихся символов в параметрах, а также любых параметров и любого последующего пребывания в форматной строки символов, игнорируются |
\ F | FF (Под.стр) |
\ N | Wrap |
\ R | Enter (возврат каретки) |
\ T | Горизонтальная табуляция |
\ V | Вертикальная вкладка |
\\ | Буквальное символ обратной косой черты |
\ Ddd | Представляют символов 1-3 цифр восьмеричное значение. Действует только в строке формата |
\ 0ddd | Показаны 1-3 восьмеричное значение символа |
примеров
$ 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 $ #不换行