Bash通过通配符和隐藏文件循环

前端之家收集整理的这篇文章主要介绍了Bash通过通配符和隐藏文件循环前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
只是一个简单的shell脚本,很困惑:

这是我的脚本:

% for f in $FILES; do echo "Processing $f file.."; done

命令:

ls -la | grep bash

生产:

% ls -a | grep bash
.bash_from_cshrc
.bash_history
.bash_profile
.bashrc

什么时候

FILES=".bash*"

我得到与ls -a相同的结果(不同的格式).但是什么时候

FILES="*bash*"

我得到这个输出

Processing *bash* file..

这不是预期的产出,而不是我的期望.我不允许在文件名的开头有一张通配符?是个 .在开头的文件名称“特殊”不知何故?

设置

FILES="bash*"

也不行

FILES =“.bash *”的作品是因为隐藏的文件名以a开头.

FILES =“bash *”不起作用,因为隐藏的文件名以a开头.不是b

FILES =“* bash *”不起作用,因为字符串开头的*通配符会忽略隐藏的文件.

猜你在找的Bash相关文章