在Bash中,glob与[[]] vs []的工作方式不同吗?

时间:2017-08-31 23:40:53

标签: bash glob

我有$ HOME / foo / foo.mov文件

if [[ -f $HOME/**/*.mov ]]; then
  echo "file is there" else
  echo "file is not there"
fi

回声“文件不存在”。而,

if [ -f $HOME/**/*.mov ]]; then   
  echo "file is there" else
  echo "file is not there"
fi

回应“那里的文件”。

为什么[[]]和[]之间有区别?

1 个答案:

答案 0 :(得分:2)

[命令的参数受路径名扩展的影响; [[ ... ]]中使用的单词不是。

如果您收到file is there,我怀疑您确实拥有与该模式匹配的一个文件。否则,-f的参数太多,或者模式将被视为不命名现有文件的文字字符串。