相关疑难解决方法(0)

Bash for 循环和全局扩展

考虑以下 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是文件还是不行。到目前为止有任何解决方案吗?

bash

5
推荐指数
1
解决办法
1567
查看次数

bash for循环没有文件

当我循环浏览所有文件时,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.

这怎么可能?如何循环遍历所有文件(如果没有文件则不循环)?

bash for-loop wildcard shopt

4
推荐指数
2
解决办法
146
查看次数

标签 统计

bash ×2

for-loop ×1

shopt ×1

wildcard ×1