“〜/ Desktop / test.txt:没有这样的文件或目录”

“〜/ Desktop / test.txt:没有这样的文件或目录”

我写过这个剧本:

#!/bin/bashfile="~/Desktop/test.txt"echo "TESTING" > $file

该脚本不起作用; 它给了我这个错误:

./tester.sh: line 4: ~/Desktop/test.txt: No such file or directory

我究竟做错了什么?


qq_笑_17
浏览 746回答 2
2回答

叮当猫咪

尝试更换~用$HOME。仅在波浪线未引用时才会发生Tilde扩展。见info "(bash) Tilde Expansion"。你也可以file=~/Desktop不引用它,但如果你用它中的字段分隔符替换它的一部分,那么它将会中断。引用变量的值可能是养成习惯的好事。引用变量file=~/"Desktop"也会起作用,但我觉得这很难看。$HOME在可能的情况下,首选的另一个原因是:波浪扩展只发生在单词的开头。因此,command --option=~/foo只有在command自身代价扩展时才会起作用,这将随命令而变化,同时command --option="$HOME/foo"始终有效。

四季花海

仅供参考,您还可以使用eval:eval "echo "TESTING" > $file"在eval作为参数取指令,它会导致壳做波浪线扩展。
打开App,查看更多内容
随时随地看视频慕课网APP