【发布时间】:2016-10-09 04:42:23
【问题描述】:
我正在尝试运行如下的 for 循环,但没有成功
hour=`date +%H -d "1 Hour Ago"`
cd /Log1/
for i in `seq -w 00 "$hour"`; // $hour not working
do
zgrep -a "Packet" LOG1.txt| grep "#SUCCESS#" |wc -l >>success_chour.txt
zgrep -a "Packet" LOG2.txt| grep "#FAIL#" |wc -l >>fail_chour.txt
done
我尝试过$hour、"$hour" 和'$hour',但均未成功。
【问题讨论】:
-
这对我有用,但你的
//评论不会。究竟是什么不工作?你用i做什么? -
+ cd /Log1/AL/TTT_Logs/Backup/ + echo 'Hour: 12' Hour: 12 ++ seq -w 00 12 + for i in '
seq -w 00 "$hour"' + zgrep -a'数据包[FULL' TTT.log.2016-10-09-00.gz + grep '#SUCCESS#' + wc -l + zgrep -a '数据包[FULL' TTT.log.2016-10-09-00.gz + grep '#FAIL#' + wc -l -
cmets 中的代码非常难以阅读,因为它们的格式有限。你能edit你的问题添加相关信息吗?
-
seq不是 bash 的一部分——没有随 bash 代码库一起提供,并且 bash 无法控制它的运行方式;它也没有被任何 POSIX 标准所涵盖。因此,我质疑这是否是一个合法的 bash 问题,而不是一个关于非常具体的操作系统实现非标准化工具的问题。 -
...无论如何,如果您实际上没有在循环中以任何方式使用生成的值,那么在 00 和您的小时数之间进行迭代有什么意义?
标签: bash shell loops variables for-loop