我正在尝试使以下循环起作用。我可以获得我想要的输出,如果我在命令行上运行它,一个文件作为输入,但它不是用for循环提取的。有什么帮助吗?
#!/bin/bash
FILES=$(/home/dd/ff/*.txt)
for file in $FILES
do
grep -r -i -A4 'Compliance Calculation' "$file"
done
答案 0 :(得分:2)
以这种方式尝试:
#!/bin/bash
FILES=(/home/dd/ff/*.txt)
for file in "${FILES[@]}"; do
grep -r -i -A4 'Compliance Calculation' "$file"
done
有关解释,请参阅有关bash变量扩展的my video。
答案 1 :(得分:2)
最小的解决方法是完全摆脱FILES
。
for file in /home/dd/ff/*.txt
答案 2 :(得分:0)
此脚本存在许多问题:
如果必须使用循环,可以直接在循环中展开glob:
for / home / dd / ff / * .txt