微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash脚本继续关键字不断开循环迭代

我正在学习一系列教程来学习Bash shell脚本。 其中一个练习是循环当前目录中的文件在这文件中search一个模式。 如果find了模式,那么脚本应该总结这些文件文件大小。

#!/bin/sh patern=echo totalSize=0 for 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 fi done

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

我不明白这个行为。 一个空目录怎么能有一个文件大小?

但我主要关心的是为什么continue关键字不停止循环迭代。 输出显示脚本正在运行包含grep命令的下面的if语句,即使在发现目录时它应该停止。

我已经validation了testing命令[ ! -f $file ] [ ! -f $file ]事实上在循环到达目录时返回0,因此应该调用&& continue 。 那么为什么程序继续执行其余的循环代码,并试图grep目录,而不是像预期的那样跳过循环迭代? 我知道这是相当微不足道的,但想知道这里发生了什么。

使用Varnish + Nginx(HTTPS)时redirect循环

在Windows批处理中计数Var

Windows批处理脚本 – 一次执行一个命令

从`find`循环文件名?

在批处理脚本(Windows)中使用随机文件名创buildn个文件 – 我的脚本只创build一个文件

输出文字

模式在退休时相匹配

文件大小为396

目前为止的大小是6385字节

sum_files中匹配的模式

文件大小为398

目前为止的大小是6783字节

在tp0中匹配的模式

文件大小为164

目前为止的大小是6947字节

如何在bash中的所有子目录下gzip所有文件

Windowsbatch file – 使用自定义文件名填充文件

使用bash来读取一个文件,然后从提取的单词中执行一个命令

在Windowsbatch file中循环

cmd脚本,如何将令牌variables(例如%% a)传递给调用

continue循环,好像到达了底部

打破循环使用break 。

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

至于你的问题是关于一个空目录如何可以有一个大小:目录在技术上只是文件本身,为了建立自己的目录,他们需要一些数据让文件系统知道。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐