我正在编写一个简单的bash脚本,并希望显示特定目录中的所有项目。我尝试了以下操作:
desktop="~/Desktop/testr/"
echo $desktop
echo `ls $desktop`
但是我一直得到输出:
~/Desktop/testr/
ls: ~/Desktop/testr/: No such file or directory
但是当我从终端运行ls时,我可以看到这些项目。我怀疑问题是~
没有扩大,但我认为双引号可以解决这个问题。
感谢您的帮助!
答案 0 :(得分:10)
这是因为在引用的字符串中没有波形扩展,并且波形扩展在回声线中的参数替换之前出现。
扩展的顺序是:
有关血腥的详细信息,请参阅POSIX Shell Specification on Word Expansions。