附加到 Bash 中的变量文件名



为什么这样做:

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

相关内容

  • 没有找到相关文章

最新更新