Shell printfを使用して印刷出力変数をフォーマットする

1805 ワード

printfの使用例:
printf "FirstName: %s
LastName: %s
" "Toby" "Zhao"

我々は中の%sを分類子と呼ぶ.
次にprintfで使用できる分類子テーブルを示します.
分類子
説明
%b
関連するパラメータを印刷し、スラッシュ""の付いた特殊文字を解釈します.
%q
関連パラメータをShell参照形式で印刷し、標準入力で再利用できるようにします.
%d
関連パラメータを符号付き10進数で印刷
%i
%dと同じ
%o
関連パラメータを符号なし8進数で印刷
%u
関連パラメータを符号なし10進数で印刷
%x
関連パラメータを符号なし小文字16進数で印刷
%X
%xと同じですが、大文字です.
%f
浮動小数点数の形式で関連パラメータを解析して印刷
%e
関連パラメータを二重精度浮動小数点数+eまたは-eの形式で印刷
%E
%eと同じで、大文字Eだけで
%g
関連パラメータを%fまたは%e形式で印刷
%G
関連パラメータを%fまたは%E形式で印刷
%c
関連パラメータを文字形式で印刷し、パラメータの最初の文字のみを印刷します.
%s
関連パラメータを文字列形式で印刷
%n
印刷する文字数の指定
%%
%文字を印刷
printfコマンドの文字列では、次のエスケープ文字も使用できます.
分類子
説明
"
二重引用符の印刷
\NNN
8進数の値で1つのASCII文字を表して、例えば101、つまり65、文字“A”を表します
\
を選択します.
\a
警告音を発する
\b
前の文字を削除
\f
ページを変更すると、一部のインプリメンテーションでは画面がクリアされ、改行される場合があります.
折り返し
\r
行の先頭から、改行とは異なり、本行にあります
\t
Tabキー(タブ)
\v
垂直タブ(垂直タブ)は、fと似ていますが、機械によって表示が異なり、通常は改行VERTICAL TABまたはCTRL-Kを引き起こします.
\xHH
16進数の値で1つのASCII文字を表します.例えば、x 41、すなわち65、文字「A」を表します.
echoはエスケープ文字もサポートしていますが、「-e」オプションを追加します.
いくつかの曖昧さを回避するために${}を使用する必要がある場合があります.たとえば、次のようにします.
LOGDIR="var/log/"
echo "The log file is $LOGDIRmessage"

出力結果:
The log file is 

BashはLOGDIRmessage変数を検索しようとしたが、見つからなかった.このような曖昧さを避けるために、${}構文を使用して、以下に示すようにします.
LOGDIR="var/log/"
echo "The log file is ${LOGDIR}message"

出力結果:
The log file is /var/log/message

ここでは、「Linux Shellコマンドラインおよびスクリプトプログラミングインスタンスの詳細」を参照してください.