为什么这样做:
echo "foo" >> ~/Desktop/sf-speedtest-output.csv
但这不行吗?
outputFile="~/Desktop/sf-speedtest-output.csv"
echo "foo" >> $outputFile # Error: No Such file or directory
我在${}
、$()
、""
中尝试过。这不是一个逃避的问题吗?
~
-expand不会发生在带引号的字符串中。你可以侥幸逃脱:
outputFile=~/"Desktop/..."
或者这个:
outputFile="$HOME/Desktop/..."
有关更多详细信息,请参阅波浪号扩展或 bash 手册。
因为波浪号~
扩展不是用双引号完成的"
如果单词以不带引号的波浪号字符 ('~') 开头,则所有 字符直到第一个不带引号的斜杠(或所有字符,如果有 没有不带引号的斜杠)被视为波浪号前缀
这应该反过来工作
outputFile="/home/user/Desktop/sf-speedtest-output.csv"
echo "foo" >> $outputFile
或
outputFile=~/"Desktop/sf-speedtest-output.csv"
echo "foo" >> $outputFile