将通配符*未评估传递给内部命令

时间:2017-10-27 13:33:25

标签: bash wildcard

我正在编写一个脚本,要求我使用未评估的*

这是我尝试过的:

show() {
    for file in $(find . -name $1); do
        echo $file
    done
}

如果我运行show *.pdf,代码将仅查找当前目录中的PDF,并将其传递到find . -name

我需要的是将通配符转移到find未评估的值,以便它在当前文件夹中递归查找PDF。

我目前的解决方案涉及这样做:

show() {
    for file in $(find . -name "*$1"); do
        echo $file
    done
}

这让我写show .pdf,这很好,除了几乎所有允许通配符使用*运算符的bash命令。因此,为了使其与系统的其他部分保持一致。

我有办法做到这一点吗?我正在解决这个问题。

我也尝试了show "*.pdf",但结果完全相同。

注意:当我可以让它运行find . -name "*.pdf"时,我只是回应结果可能看起来很奇怪。这是真的,但这是更大脚本的第一步。我希望在继续之前让这个工作。

0 个答案:

没有答案