BASH查找-name(读取变量)



我是bash的新手,遇到了一个无法解决的问题。问题是我需要使用查找名称与定义为变量的名称。脚本部分:

read MYNAME
find -name $MYNAME

但是当我运行脚本时,输入'*sh'进行读取,结果为0。但是,如果我直接在终端输入:

find -name '*sh'

it's working fine.

我也试过

read MYNAME
find -name '$MYNAME' 

输入*sh读取,没有成功。

有谁能帮我吗?

最有可能

read MYNAME
find -name "$MYNAME"

是您要查找的版本。如果没有双引号", shell将在运行find之前在*sh示例中扩展*,这就是为什么您的第一次尝试没有工作

您可能需要

find -name "$MYNAME"

,因为这可以防止$MYNAME受到bash的路径名扩展的影响。"globbing"),导致*sh完整地传递给find。一个关键的区别是,globing不会匹配隐藏文件,比如.ssh,而find -name "*sh"可以。然而,因为你没有定义你所寻求的预期行为,所以很难确定你需要什么。

最新更新