在Unix bash shell中执行While do循环



我正在尝试创建一个脚本,该脚本循环查找文件中的日期列表并执行特定操作。我的代码如下所示。我正在使用bash shell。

while read line; do
#do something with $line
done < file.txt

到目前为止,我尝试用两个日期测试我的脚本,但脚本在第一个日期执行,但在第二个日期不执行。此外,我的剧本说它成功地完成了。有人能帮我吗。

现在我正在尝试运行我的脚本4个日期。我也读到有人有类似的问题,有N行,但脚本只适用于N-1行。但我找不到这个问题的完美答案。

我试过了,这种代码结构很好。也许问题出在循环内部?

[ohad@OhadLaptop]$ cat a.txt 
a
b
c
[ohad@OhadLaptop]$ while read line; do echo $line; done < a.txt 
a
b
c

最后一行的末尾应该有一个换行符。我将显示一个错误的文件:

printf "1n2" > file.txt
wc -l file.txt
1 file.txt
while read line; do
>   echo $line
> done < file.txt
1

这是你的问题吗?只有cat file.txt。当最后一行和命令提示符在同一行时,需要在file.txt中追加一行新行(类似于echo >> file.txt)。

最新更新