ここには特別な概念はありません。代わりに、展開を明示的に使用しない限り、シェル内のすべてがリテラル文字列です。この設計上の決定により、リテラル値の割り当てが容易になります。これは、割り当ての主な使用例です。
varname=value
という変数は検索しませんvalue
が、文字列をそのまま使用しますvalue
。bashでは、+ - /
etcなどのほとんどの「特殊」文字は特別なものではありません。それらは、アルファベット文字のように、文字通りの単語の一部にすぎません。
拡張構文により、テンプレート内に値を簡単に埋め込むことができます。
echo "Hello ${name}!"
(シェルでは、引用符は文字列を区切る'…'
か"…"
区切らないことに注意してください。代わりに、適用される展開を変更します。一重引用符はすべての展開と単語分割を抑制し、二重引用符は単語分割とグロブ展開を抑制しますが、変数展開、算術展開は抑制しません(Bashのみ) 、またはコマンドの置換次の単語は等価です:。 、foo\ bar
、。)foo' 'bar
'foo bar'
「すべてがデフォルトで文字列である」アプローチの結果、単純な文字列だけを使用しないプログラムはより複雑になります。Bashの配列構文は、紛らわしいほどに混乱しています。算術展開はやや明白ではありません。ただし、そのようなプログラムはシェルスクリプトに最適ではありません。
推奨資料:シェルの構文とセマンティクスのPOSIXの説明:http : //pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html