シェル (bash/zsh) では、シングルクオート (`'`) とダブルクオート (`"`) で変数展開の動作が異なる。 | クオート | 変数展開 | 例 | | ------- | ---- | ------------------------- | | `"..."` | される | `"$HOME"` → `/Users/tanu` | | `'...'` | されない | `'$HOME'` → `$HOME`(リテラル) | ```bash # ダブルクオート: 変数が展開される echo "Home is $HOME" #> Home is /Users/tanu # シングルクオート: 変数が展開されない echo 'Home is $HOME' #> Home is $HOME ``` ## 使い分けのルール - **変数展開が必要** → ダブルクオート必須 - **リテラル文字列** → シングルクオートが安全 ```bash # 変数展開が必要な例 export PATH="$HOME/.local/bin:$PATH" # リテラル文字列の例 if [ -f '/path/to/file' ]; then ``` ## 関連ノート - **[応用]** [[dotfiles ではパスをハードコードせず環境変数を使う]]: 本ノートの使い分けルールが効く具体例 - **[派生]** [[シェルスクリプトは実行権限を付与して直接実行する]]: 本ノートのクオート使い分けと並ぶ、Shell を書くための基礎知識 - **[派生]** [[zshrc と zprofile の使い分け]]: 本ノートのクオート使い分けと並ぶ、Shell の基礎知識