用作命令参数时,字符串文件路径不起作用

时间:2016-10-14 19:47:01

标签: bash unix cat

我正在尝试使用相对路径作为另一个命令的参数。似乎路径的自动扩展不起作用,因为它是一个字符串。如何将字符串变量传递给cat命令以便它解析文件?

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

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

1 个答案:

答案 0 :(得分:4)

当置于引号内或转义时,shell不会进行Tilde(~)展开。

当您将~放在引号外时,会正确发生扩展:

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

相反,您也可以利用HOME环境变量:

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