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。