我想将一些文本写入我的家庭区域中的文件中,该文件尚不存在。我已将要创建的文件的名称存储在变量中。我想将此变量用于echo
某些文本并将其重定向到文件,首先创建文件。但它不起作用:
$ foo="~/bar"
$ echo "nonsense" > "$foo"
$ bash: ~/bar: No such file or directory
然而,如果我使用任何其他目录(只要该目录存在),它就可以正常工作
$ foo="moo/bar"
$ echo "nonsense" > "$foo"
我以为我至少可以使用touch
,但这也不起作用:
$ foo="~/bar"
$ touch "$foo"
使用存储在变量中的文件名在您的主区域中创建文件的必要秘密是什么?
答案1
只需使用 $HOME 变量:
$ foo="$HOME/bar"
$ touch "$foo"