我已经在这个问题上阅读了十几个解决方案帖子,但我的问题仍然存在。为什么我不能在代码中增加HITS
或MISSES
变量?我无法看到错误:
MISSES=0
HITS=0
for fName in *.dat; do (
if grep -q "hit" "$fName"; then
echo "$fName hit";
((HITS++));
else
echo "$fName miss";
((MISSES++));
fi;
);done
我刚开始熟悉bash,所以到目前为止我知之甚少。
答案 0 :(得分:2)
(...)
在子shell中运行其内容,这意味着子shell退出后子shell中变量的任何更改都不可见。你可以省略它们:
for fName in *.dat; do
if grep -q hit "$fName"; then
echo "$fName hit"
((HITS++))
else
echo "$fName miss"
((MISSES++))
fi
done
答案 1 :(得分:1)
也许你可以尝试类似的东西: HITS = $(($ HITS + 1));