Bashシェルスクリプトからechoとprintfで文字列を出力できます。
例で文字列を出力する方法を見てみましょう。
- echo:文字列
- printf : 文字列のフォーマットと出力
1. echo: 文字列出力
echo は文字列と変数を画面に出力します。
1.1 文字列出力
以下のように文字列を直接出力したり、変数の内容を出力したりできます。
#!/bin/bash
echo "Hello, world"
str="Hello, Bash"
echo $str
Output:
$ bash example.sh
Hello, world
Hello, Bash
1.2 文字列と変数の内容を一緒に出力
以下のように、文字列間に変数の文字列を組み合わせて一緒に出力できます。
#!/bin/bash
str1="Hello"
str2="Bash"
echo "str1=${str1}, str2=${str2}"
Output:
$ bash example.sh
str1=Hello, str2=Bash
2. printf:文字列formattingと出力
printfは文字列フォーマットを使用して画面に文字列を出力できます。
2.1 文字列出力
echoのように直接文字列を出力したり、変数の値を出力したりできます。
#!/bin/bash
printf "Hello, Bash\n"
str="Hello, Bash\n"
printf "$str"
Output:
$ bash example.sh
Hello, Bash
Hello, Bash
2.2 文字列 formatting
printfは文字列フォーマットをサポートし、以下のように任意の形式で変数の内容を組み合わせて出力できます。
#!/bin/bash
str="Hello, Bash"
printf "{%s}\n" "$str"
Output:
$ bash example.sh
{Hello, Bash}
フォーマットが2つの引数を受け取る場合
以下のようにフォーマットが2つの引数を受け取るときは、2つの変数を引数に渡すだけです。また、 \t(tab)
のような表現も使用可能です。
printf "[%s\t%s]\n" "First" "Second"
Output:
$ bash example.sh
[First Second]
フォーマットが 1 つの引数を受け取り、複数の引数が渡される場合
以下のようにフォーマットは1つの変数を受け取りますが、2つ以上の変数が引数に渡されると、それぞれの引数に対して文字列が作成されて出力されます。
#!/bin/bash
str="Hello, Bash"
str2="Hello printf"
printf "{%s}\n" "$str" "$str2" "Hello!"
Output:
$ bash example.sh
{Hello, Bash}
{Hello printf}
{Hello!}
2.3 実数出力
$.1f
、$.2f
のように、実数の小数点桁数を表現するフォーマットもサポートしています。
#!/bin/bash
printf "%.1f\n" 255 0xff 3.5
Output:
$ bash example.sh
255.0
255.0
3.5
Related Posts
- Bash Shell - 文字列の出力方法(echo, printf)
- Bash Shell - 数値比較演算子
- Bash Shell - 変数が定義されているかどうかを確認する方法
- Bash Shell - スリープ関数、特定の時間を停止する
- Bash Shell - 文字列 切り出し(substring、split)
- Bash Shell - 日付、時刻を取得する
- Bash Shell - 文字列を連結する方法
- Bash Shell - ファイルの生成と文字列の追加
- Bash Shell - 文字列比較、文字列が含まれているかどうかを確認する
- Bash Shell - 条件文(if-else)
- Bash Shell - 数値演算(プラス、マイナス、乗算、除算)