Bash Shell - 文字列の出力方法(echo, printf)

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
codechachaCopyright ©2019 codechacha