|
■
エスケープシーケンスと文字列連結
エスケープシーケンスと文字列連結について説明します。
下に並べた文字は、シェルスクリプトでは特殊な文字として扱われ、そのままでは普通の文字として扱ってくれません。
; & ( ) | ^ < > ? * [ ] $ ` " ' { } [TAB] [SPACE]
これらを普通の文字として扱うためには、適当にエスケープする必要があります。
特殊文字をエスケープするには次の3つが使われます。
-
バックスラッシュ( \ )により一文字エスケープ
-
シングルクォーテーション( ' )で囲む
-
ダブルクォーテーション( " )で囲む
バックスラッシュにより一文字エスケープ
バックスラッシュ ( \ ) の直後の特殊文字は普通の文字として扱われます。
シングルクォーテーションで囲む
シングルクォーテーション ( ' ) で囲まれた中の特殊文字はすべて普通の文字として扱われます。
ダブルクォーテーション ( " ) で囲む
ダブルクォーテーションで囲まれた中の特殊文字は $ ` \ を除いてすべて普通の文字として扱われます。つまり、ダブルクォーテーション中では 変数、コマンド置換
が行われます。これが、シングルとダブルのクォーテーションの意味の違いです。
|
下に特殊文字のエスケープに関するサンプルスクリプトとその実行結果を記しました。
ファイル名 : test6.1.sh
1: #!/usr/bin/sh
2: var=hensu
3: echo $var
4: echo "$var"
5: echo "$\var"
6: echo '$var'
7: echo '\$var'
|
実行結果は下のとおり。
1: $ chmod u+x test6.1.sh
2: $ test6.1.sh
3: hensu
4: hensu
5: $var
6: $var
7: \$var
|
シェルスクリプトで文字列を連結するには、単純に文字列同士を並べるだけです。
ファイル名 : test6.2.sh
1: #!/usr/bin/sh
2: echo "こんにちは。""どういたしまして。"
|
実行結果は以下のようになります。
1: $ chmod u+x test6.2.sh
2: $ test6.2.sh
3: こんにちは。どういたしまして。
|
|