この回答と私自身の理解によると、チルダはホームディレクトリに展開されます:
$ echo ~
/home/braiam
これで、シェル拡張を機能させたいときはいつでも、i。 e。 $FOO
などの変数名を使用する 、およびスペースなどの予期しない文字が原因で壊れないようにします。二重引用符を使用する必要があります"
:
$ FOO="some string with spaces"
$ BAR="echo $FOO"
$ echo $BAR
echo some string with spaces
この拡張がチルダで機能しないのはなぜですか?
$ echo ~/some/path
/home/braiam/some/path
$ echo "~/some/path"
~/some/path
承認された回答:
理由は、二重引用符で囲まれているため、チルダ~
特別な意味はなく、文字通りに扱われます。
POSIXは、二重引用符を次のように定義しています。
文字を二重引用符(“”)で囲むと、
二重引用符内のすべての文字のリテラル値が保持されます。ただし、
文字のドル記号、バッククォート、バックスラッシュは例外です。…
アプリケーションは、二重引用符の前に
バックスラッシュを付けて、二重引用符で囲むようにする必要があります。パラメータ「@」には、
二重引用符で囲む特別な意味があります
$を除く 、 ` 、 および@ 、その他の文字は二重引用符で囲まれた文字として扱われます。