考虑以下 bash 代码:
for f in /tmp/*.dat; do echo ${f}; done
Run Code Online (Sandbox Code Playgroud)
当我运行它并且输出中没有*.dat文件时/tmp:
/tmp/*.dat
Run Code Online (Sandbox Code Playgroud)
这显然不是我想要的。但是,当有这样的文件时,它会打印出正确的
/tmp/foo.dat
Run Code Online (Sandbox Code Playgroud)
当目录中没有这样的文件时,如何强制 for 循环返回“无”。该find-command是不是一种选择,对不起为:/我想也有一个解决方案,而测试中,如果*.dat是文件还是不行。到目前为止有任何解决方案吗?
当我循环浏览所有文件时,foo我会这样做
for f in foo* ; do echo "result = $f" ; done
Run Code Online (Sandbox Code Playgroud)
问题是当我没有文件开始时foo:
result = foo*
Run Code Online (Sandbox Code Playgroud)
意味着循环执行一次,即使没有文件开始foo.
这怎么可能?如何循环遍历所有文件(如果没有文件则不循环)?