2016-10-14 4 views
2

他のコマンドの引数として相対パスを使用しようとしています。文字列であるため、パスの自動拡張が機能しないようです。文字列変数をcatコマンドに渡してファイルを解決するにはどうすればよいですか?コマンド引数として使用すると文字列ファイルのパスが機能しない

PEM="~/.ssh/my.pem"; cat $PEM 
// cat: ~/.ssh/my.pem: No such file or directory 

PEM=~/.ssh/my.pem; cat $PEM 
// gives key 

答えて

4

チルダ(~)引用符の内側に入れたり、エスケープされたときに拡張がシェルによって行われていません。あなたは~外に引用符を置くとき

展開が正常に行われます

PEM=~"/.ssh/my.pem"; cat "$PEM" 

代わりに、あなたはまた、HOME環境変数を活用することができます

PEM="$HOME/.ssh/my.pem"; cat "$PEM" 
関連する問題