linux – Bash脚本继续关键字不破坏循环迭代

linux – Bash脚本继续关键字不破坏循环迭代,第1张

概述我正在学习一系列教程来学习 Bash shell脚本.其中一个练习是遍历当前目录中的文件并在这些文件中搜索模式.如果找到模式,那么脚本应该总结这些文件的文件大小. #!/bin/shpatern=echototalSize=0for file in * do [ ! -f $file ] && continue if grep $patern $file > /de 我正在学习一系列教程来学习 Bash shell脚本.其中一个练习是遍历当前目录中的文件并在这些文件中搜索模式.如果找到模式,那么脚本应该总结这些文件的文件大小.

#!/bin/shpatern=echototalSize=0for file in * do    [ ! -f $file ] && continue      if grep $patern $file > /dev/null    then            echo "pattern matched in $file"         echo "file size is `stat -c%s $file`"        fileSize=`stat -c%s $file`        totalSize=`expr $totalSize + $fileSize`        echo "size so far is $totalSize bytes"        echo                                                        fidone

我在运行脚本的目录中有另一个文件夹.该文件夹名为“somedir”.它是空的.我已经在下面粘贴了一段输出文本.中间的3行显示循环遍历目录“somedir”,它打印为“sum_files” – 我的脚本名称以及文件大小.

我不明白这种行为.空目录如何具有文件大小?
但我主要担心的是为什么continue关键字不会停止循环迭代.输出显示脚本正在运行包含grep命令的if语句,即使找到目录也应该停止.我已经验证了测试命令[! -f $file]实际上在循环到达目录时返回0,因此&&应该调用continue.那么为什么程序继续使用其余的循环代码并尝试grep目录而不是仅按预期跳过循环迭代?我知道这是微不足道的,但想知道这里发生了什么.

输出文字

退休时匹配的模式
文件大小为396
到目前为止的大小是6385字节

sum_files中匹配的模式
文件大小为398
到目前为止的大小是6783字节

模式在tp0中匹配
文件大小为164
到目前为止的大小是6947字节

解决方法 继续循环,就像它到达底部一样.

要打破循环使用休息.

有关bash脚本的更多信息,请访问:http://tldp.org/LDP/abs/html/index.html

总结

以上是内存溢出为你收集整理的linux – Bash脚本继续关键字不破坏循环迭代全部内容,希望文章能够帮你解决linux – Bash脚本继续关键字不破坏循环迭代所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1021191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存