Bashスクリプト変数構文:一部のコマンドには有効ですが、他のコマンドには無効です

Bashスクリプト変数構文:一部のコマンドには有効ですが、他のコマンドには無効です

この変数の動作を理解していません。

SSH_CONFIG_FILE="~/.ssh/config"
echo $SSH_CONFIG_FILE
ls -l $SSH_CONFIG_FILE
ls -l ~/.ssh/config

出力は次のとおりです。

~/.ssh/config
ls: cannot access '~/.ssh/config': No such file or directory
-rw------- 1 pm domain^users 1229 Sep 19 10:52 /home/pm/.ssh/config

echo$記号を使うとうまくいきますが、うまくいかないのはなぜですかls

変数を ""、"、"、{}、[]で囲みようとしましたが、改善されませんでした。

答え1

~シェルを自宅に拡張するには、チルダの周りに引用符を入れないでください。

SSH_CONFIG_FILE=~/.ssh/config

スペースがある場合は、そうしてください。

var=~/'foo bar/file'

チルダの周りに引用符を配置すると、シェルがチルダを処理するために拡張するのを防ぎます。文字通り

関連情報