PowerShellで使用出来る囲み文字である「シングルクォーテーション」と「ダブルクォーテーション」の挙動の違いを解説します。
はじめに
PowerShellで文字列を扱う際の囲み文字(記号)として、シングルクォーテーションとダブルクォーテーションがあります。
使用する囲み文字によって、動作が変わってくるので、それぞれ説明していきたいと思います。
シングルクォーテーションについて
シングルクォーテーションで文字列を囲んだ場合の動作を説明します。
シングルクォーテーションで文字列を囲むと、変数は文字列として扱われます。
実際の例を見てみましょう。
下記の例では、echoで変数[$str1]を指定していますが、
シングルクォーテーションで囲っているため、
変数は展開されず、そのまま「$str1」と表示されています。
PS C:\ws> $str1 = "あいうえお" PS C:\ws> echo '$str1' $str1
下記の例では、変数[$str2]に変数[$str1]を代入していますが、
シングルクォーテーションで囲っているため、
変数は展開されず、そのまま「$str1 かきくけこ」と表示されています。
PS C:\ws> $str1 = "あいうえお" PS C:\ws> $str2 = '$str1 かきくけこ' PS C:\ws> echo $str2 $str1 かきくけこ
ダブルクォーテーションについて
ダブルクォーテーションで文字列を囲んだ場合の動作を説明します。
ダブルクォーテーションで文字列を囲むと、変数は展開された文字列として扱われます。
実際の例を見てみましょう。
下記の例では、echoで変数[$str1]を指定していますが、
ダブルクォーテーションで囲っているため、
変数が展開されて、「あいうえお」と表示されています。
PS C:\ws> $str1 = "あいうえお" PS C:\ws> echo "$str1" あいうえお
下記の例では、変数[$str2]に変数[$str1]を代入していますが、
ダブルクォーテーションで囲っているため、
変数が展開されて、「あいうえお かきくけこ」と表示されています。
PS C:\ws> $str1 = "あいうえお" PS C:\ws> $str2 = "$str1 かきくけこ" PS C:\ws> echo $str2 あいうえお かきくけこ
まとめ
本記事では、実例を交えながら、囲み文字としてのシングルクォーテーションとダブルクォーテーションの挙動をそれぞれ説明してきました。
まとめると下記のようになります。
囲み文字 | 動作 |
---|---|
シングルクォーテーション | 囲った文字列がそのまま文字列として扱われる |
ダブルクォーテーション | 囲った文字列に変数が含まれている場合、変数が展開された文字列として扱われる |
コメント