我正在尝试使用相对路径作为另一个命令的参数。似乎路径的自动扩展不起作用,因为它是一个字符串。如何将字符串变量传递给cat
命令以便它解析文件?
PEM="~/.ssh/my.pem"; cat $PEM
// cat: ~/.ssh/my.pem: No such file or directory
PEM=~/.ssh/my.pem; cat $PEM
// gives key
答案 0 :(得分:4)
当置于引号内或转义时,shell不会进行Tilde(~
)展开。
当您将~
放在引号外时,会正确发生扩展:
PEM=~"/.ssh/my.pem"; cat "$PEM"
相反,您也可以利用HOME
环境变量:
PEM="$HOME/.ssh/my.pem"; cat "$PEM"