Bash の複数行の文字列
-
Bash で
ヒアドキュメントを使用して複数行の文字列を作成する - Bash でシェル変数を使用して複数行の文字列を作成する
-
Bash で
printfを使用して複数行の文字列を作成する -
Bash で
-eオプションでechoを使用して複数行の文字列を作成する -
Bash で
echoを使用して複数行の文字列を作成する
このチュートリアルでは、here-document、シェル変数、printf、echo、および echo を使用して、余分なスペース(インデント)を入れずに bash で複数行の文字列をファイルに出力するさまざまな方法を示します。-e オプション。
Bash でヒアドキュメントを使用して複数行の文字列を作成する
ヒアドキュメントは、ファイルに複数行の文字列を入力するインタラクティブな方法を提供します。EOF は Here Tag として知られています。Here Tag は、区切り文字として機能するため、Here Tag まで複数行の文字列を入力することをシェルに通知します。<< は Here Tag を設定するために使用されます。> は入力リダイレクトに使用されます。この場合、入力を指定されたファイル output.txt にリダイレクトします。
cat << EOF > output.txt
> Hello
> World
> !
> EOF
cat コマンドで output.txt ファイルの内容を確認しましょう。
cat output.txt
出力から、単語のすべてのセットに独自の行があり、余分なスペースがないことがわかります。
Hello
World
!
Bash でシェル変数を使用して複数行の文字列を作成する
ここでは、greet という名前のシェル変数を使用しています。greet に複数行の文字列を割り当てました。
greet="Hello
> ,
> wolrd
> !"
以下のコマンドは、シェル変数 greet の複数行の文字列を取得し、> を使用して指定されたファイル multiline.txt にリダイレクトします。
echo "$greet" > multiline.txt
cat コマンドで multiline.txt の内容を確認してください。
cat multiline.txt
出力から、単語のすべてのセットに独自の行があり、余分なスペースがないことがわかります。
Hello
,
wolrd
!
Bash で printf を使用して複数行の文字列を作成する
改行文字で printf を使用し、> を使用して出力をファイルにリダイレクトできます。ファイルの内容に余分なスペースはありません。
#!/bin/bash
printf "Every word is on a seperate line!\n"
printf "%s\n" "Hello" "," "World" "!" > multiline.txt
出力:
Every word is on a separate line!
cat コマンドを使用して、multiline.txt の内容を出力します。
cat multiline.txt
出力から、単語のすべてのセットに独自の行があり、余分なスペースがないことがわかります。
Hello
,
World
!
Bash で -e オプションで echo を使用して複数行の文字列を作成する
次の bash スクリプトは、余分なスペースを入れずに単語を multiline.txt に出力します。-e オプションを使用すると、変数 greet のエスケープ文字を解釈できます。
#!/bin/bash
greet="Hello\n,\nWorld\n!"
echo -e $greet > multiline.txt
cat コマンドで multiline.txt の内容を出力します
cat multiline.txt
出力から、単語のすべてのセットに独自の行があり、余分なスペースがないことがわかります。
Hello
,
World
!
Bash で echo を使用して複数行の文字列を作成する
以下のスクリプトは、greet という名前の変数に複数行の文字列を割り当てます。次に、変数のコンテンツは、> を使用して multiline.txt ファイルにリダイレクトされます。greet 変数の引用符は、新しい行を保持します。
#!/bin/bash
greet="Hello
,
World
!"
echo "$greet" > multiline.txt
cat コマンドで multiline.txt の内容を表示します。
cat multiline.txt
出力から、単語のすべてのセットに独自の行があり、余分なスペースがないことがわかります。
Hello
,
World
!
