【问题标题】:Bash ls command not working in shell script [duplicate]Bash ls命令在shell脚本中不起作用[重复]
【发布时间】:2021-05-27 10:18:50
【问题描述】:

我正在编写一个 shell 脚本,它还必须检查具有特定扩展名的文件是否存在于不同的目录中。我正在运行这样的ls 命令:

TEMPLATE_FOLDER="$HOME/Downloads/" # Folder to check
file="py" # Extension only
amount_files=$(ls -1 "${TEMPLATE_FOLDER}*.${file}" 2>/dev/null | wc -l) # How many files in the directory

它一直告诉我ls: /Users/hussein/Downloads/*.py: No such file or directory,即使当我将该确切路径复制到终端本身时,它也可以正常工作。

如果有人能提供帮助,我将不胜感激。

【问题讨论】:

    标签: bash ls


    【解决方案1】:
    ls -1 "${TEMPLATE_FOLDER}*.${file}"
    

    如果引用了 Glob,则不会扩展它们。试试:

    ls -1 "${TEMPLATE_FOLDER}"*."${file}"
    

    【讨论】: