我写了这个脚本:
#!/bin/bash
file="~/Desktop/test.txt"
echo "TESTING" > $file
脚本不工作;它给了我这个错误:
./tester.sh: line 4: ~/Desktop/test.txt: No such file or directory
我做错了什么?
最佳答案
尝试用 $HOME
替换 ~
。波浪号扩展仅在波浪号未被引用时发生。请参阅信息“(bash) Tilde Expansion”
。
您也可以在不引用的情况下执行 file=~/Desktop
,但是如果您将其中的一部分替换为带有字段分隔符的内容,那么它将中断。无论如何,引用变量的值可能是一件好事。引用变量 file=~/"Desktop"
也可以,但我认为这很丑陋。
如果可能,首选 $HOME
的另一个原因是:波浪线扩展只发生在单词的开头。所以 command --option=~/foo
只有在 command
本身进行波浪线扩展时才有效,这会因命令而异,而 command --option="$ HOME/foo"
将始终有效。
关于bash - "~/Desktop/test.txt: No such file or directory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8409024/