首页 > 解决方案 > 在 unix shell 脚本中嵌套 for 循环

问题描述

我正在创建shell脚本,它首先需要两个条件,它将获取所有文件名并在html字段中一个接一个地插入,其他for循环将获取计数并将用于序列号的自动递增。

我写过这样的代码

cnt=`find /optware/oracle/logs/20190311_JAVA/TEMP/  -type f | wc -l`
    for ((i in `ls -l /optware/oracle/logs/20190311_JAVA/TEMP/|grep -v ^$|awk '{print $9}` && a=1; a <= $cnt ; a++)) 
    do
    echo "  <tr> $a <td></td><td>$i</td></tr>" >>Temp.lst
    done

我收到错误为 && a=1: 算术语法错误

请帮我解决这个问题。

标签: linuxshellloopsunix

解决方案


您正在混淆两个循环构造。您可以使用其中任何一个,但不能同时使用两者。

for name [ [in [words …] ] ; ] do commands; done

for (( expr1 ; expr2 ; expr3 )) ; do commands ; done

推荐阅读