相关疑难解决方法(0)

如何遍历find返回的文件名?

x=$(find . -name "*.txt")
echo $x
Run Code Online (Sandbox Code Playgroud)

如果我在Bash shell中运行上面的代码,我得到的是一个包含多个文件名的字符串,用空格分隔,而不是列表.

当然,我可以进一步将它们分开来获取列表,但我确信有更好的方法可以做到这一点.

那么循环find执行命令结果的最佳方法是什么?

bash find

189
推荐指数
8
解决办法
19万
查看次数

使用通配符和隐藏文件进行Bash for循环

只是想要一个简单的shell脚本,有点困惑:

这是我的脚本:

% for f in $FILES; do echo "Processing $f file.."; done
Run Code Online (Sandbox Code Playgroud)

命令:

ls -la | grep bash 
Run Code Online (Sandbox Code Playgroud)

生产:

% ls -a | grep bash
.bash_from_cshrc
.bash_history
.bash_profile
.bashrc
Run Code Online (Sandbox Code Playgroud)

什么时候

FILES=".bash*"
Run Code Online (Sandbox Code Playgroud)

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

FILES="*bash*"
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

Processing *bash* file..
Run Code Online (Sandbox Code Playgroud)

这不是预期的产出,而不是我的预期.我不允许在文件名的开头加一张外卡吗?是个 .在文件名的开头"特别"莫名其妙?

设置

FILES="bash*"
Run Code Online (Sandbox Code Playgroud)

也行不通.

bash scripting loops wildcard

22
推荐指数
5
解决办法
2万
查看次数

标签 统计

bash ×2

find ×1

loops ×1

scripting ×1

wildcard ×1