gpt4 book ai didi

shell - 没有这样的文件或目录 (ls) 与波浪号扩展一起使用

转载 作者:行者123 更新时间:2023-12-05 01:17:38 25 4
gpt4 key购买 nike

我正在编写一个简单的 bash 脚本,并希望显示特定目录中的所有项目。我尝试执行以下操作:

desktop="~/Desktop/testr/"
echo $desktop
echo `ls $desktop`

但是我不断得到输出:
~/Desktop/testr/
ls: ~/Desktop/testr/: No such file or directory

但是当我从终端运行 ls 时,我可以看到这些项目。我怀疑问题出在 ~没有得到扩展,但我认为双引号会解决这个问题。

谢谢你的帮助!

最佳答案

这是因为在带引号的字符串中没有波浪号扩展,并且波浪号扩展出现在 echo 行中的参数替换之前。

展开的顺序是:

  • 波浪号扩展
  • 参数扩展
  • 命令替换
  • 算术展开
  • 字段拆分
  • 路径名扩展
  • 报价删除

  • POSIX Shell Specification on Word Expansions对于血腥的细节。

    关于shell - 没有这样的文件或目录 (ls) 与波浪号扩展一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16862718/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com