我有这个命令
echo "some text" >> ~/asd/file_name
并且效果很好,但是当我从这样的输入中读取路径时
var_name="~/asd/file_name"
然后这不起作用
echo "some text" >> $var_name
答案 0 :(得分:5)
请勿在双引号中使用波浪号。然而,Tilde扩展发生在简单的任务中:
var_name=~/asd/filename
您可以在双引号中使用$HOME
代替~
。
答案 1 :(得分:3)
~
是一个特殊字符,当它没有引用时会被shell扩展,就像你的第一个命令一样。
当你使用引号时,就像你的第二个一样,~
不会被扩展。