~によるとこの回答私自身の理解によると、チルダはホームディレクトリに展開されます。
$ echo ~
/home/braiam
シェル拡張が機能したいときはいつでも(たとえば、変数名を使用し、$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
ベストアンサー1
その理由は、二重引用符内のチルダは~
特別な意味がないため、リテラルとして扱われるからです。
POSIXの定義二重引用符ように:
二重引用符( "")で囲まれた文字は、ドル記号、バックティック、およびバックスラッシュ文字を除いて、二重引用符内のすべての文字のリテラル値を保持します。
...
アプリケーションでは、二重引用符の前にバックスラッシュがあり、その中に二重引用符があることを確認する必要があります。パラメータ「@」は二重引用符の中で特別な意味を持ちます。
$と以外の文字は二重引用符内のリテラルとして扱われ`ます。\@