我遇到了一个问题,我无法找到它为什么会运行。
以下代码用于计算文件行' file.in' ,但第一个不能改变$line_count
第一个代码是:
#!/bin/bash
line_count=0
cat file.in | while read line; do
let ++line_count
done
echo $line_count
第二个代码是:
#!/bin/bash
line_count=0
while read line; do
let ++line_count
done < file.in
echo $line_count
每个答案都会有所帮助,谢谢。
答案 0 :(得分:1)
由于使用了管道,您的第一个代码示例正在子shell中执行while loop
,因此在子shell退出后,line_count
变量中的更改会丢失。