我是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"
可以。然而,因为你没有定义你所寻求的预期行为,所以很难确定你需要什么。