chmodコマンドで環境変数を使用できないのはなぜですか? [コピー]

chmodコマンドで環境変数を使用できないのはなぜですか? [コピー]

chmod コマンドでは環境変数を使用できません。これを実行する回避策はありますか?

shファイルで実行しようとした方法

export PEM_FILE="~/.ssh/xxx.pem"
chmod 400 $PEM_FILE

## Output
chmod: ~/.ssh/xxx.pem: No such file or directory

しかし、次の変数がなくてもうまくいきます。chmod 400 ~/.ssh/xxx.pem

PS:私はmacOSを使っています。これがWindowsまたはLinuxで正しく機能するかどうかを教えてください。

ありがとうございます!

ベストアンサー1

残念ながら、このような特殊文字は~文字列では機能しません。代わりに変数($HOMEホームディレクトリの指定など)を使用するか、引用符を削除してください。 (一部のシェルとの互換性が損なわれるのでお勧めできません)

したがって、次の手順を実行します。 エクスポート PEM_FILE="$HOME/.ssh/xxx.pem" またはエクスポート PEM_FILE=~/.ssh/xxx.pem。

おすすめ記事