[英]Bash scope issue (?) when incrementing variable
我有这样的代码:
#!/bin/bash
n=0
for file in *.txt
do
tail -c1 $file | read -r _ || (
((n++))
echo "$file is missing a final newline, issue #$n"
)
done
但是当我运行它时,数字并没有增加:
a.txt缺少最后一个换行符,问题#1
b.txt缺少最后一个换行符,问题1
我怎样才能解决这个问题? 看起来像是一个范围问题,因为0递增为1,就像之前的增量被忽略一样。
您在括号之间嵌入的命令作为子外壳程序运行,循环中的每个子外壳程序都以父级别(n = 0)设置的n值重新开始。
只需将括号更改为花括号(需要使用分号或换行符)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.