Bashは変数宣言を引用符なしで文字列として認識しますか?

Bashは変数宣言を引用符なしで文字列として認識しますか?
name=Jackson
echo $name

これはジャクソンを示しています。

name="Jackson"
echo $name

ジャクソンも披露する予定だ。

そのため、変数の周りに引用符を入れると文字列になるとします。厳密に言えば、name = Jacksonとは何ですか?文字列としても認識されますか?

ベストアンサー1

Linux環境変数は常に文字列です。文字列に特殊文字(シェルメタ文字またはスペース)が含まれている場合にのみ引用符が必要です。シェルメタ文字は次のとおりです。

<>()[]{}*?$|&#\;`'"

$、\、および`の場合、二重引用符はその中で拡張されるため十分ではありません。ここでは、単一引用符を使用するか、\でエスケープする必要があります。

コメントで指摘したように、bashには特別な型の変数がありますが、ほとんど必要ではなく、すべてのbash変数も基本的に文字列です。

おすすめ記事