我写过这个剧本:
#!/bin/bash
file="~/Desktop/test.txt"
echo "TESTING" > $file
Run Code Online (Sandbox Code Playgroud)
该脚本不起作用; 它给了我这个错误:
./tester.sh: line 4: ~/Desktop/test.txt: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Mic*_*man 58
尝试更换~用$HOME.仅在波浪线未引用时才会发生Tilde扩展.见info "(bash) Tilde Expansion".
你也可以file=~/Desktop不引用它,但如果你用它中的字段分隔符替换它的一部分,那么它将会中断.引用变量的值可能是养成习惯的好事.引用变量file=~/"Desktop"也会起作用,但我觉得这很难看.
$HOME在可能的情况下,首选的另一个原因是:波浪扩展只发生在单词的开头.因此,command --option=~/foo只有在command自身代价扩展时才会起作用,这将随命令而变化,同时command --option="$HOME/foo"始终有效.