linux - 在 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: 算术语法错误
请帮我解决这个问题。
解决方案
您正在混淆两个循环构造。您可以使用其中任何一个,但不能同时使用两者。
for name [ [in [words …] ] ; ] do commands; done
和
for (( expr1 ; expr2 ; expr3 )) ; do commands ; done
推荐阅读
- list - 如何使用 SwiftUI 使这个 ForEach 函数工作?
- android - 我想通过 Web 服务将 android 应用程序与 sql server 连接起来
- javascript - MongoDB不更新数据
- flutter - Flutter 将 SingleChildScrollView 或 ListView 添加到屏幕中的部分小部件
- android-sqlite - 我想在不根据行数据的情况下在完整列中输入数据
- swift - 根据标签文本动态改变单元格高度
- java - 我们如何使用公钥从托管在服务器中的应用程序使用 JSch 连接到 SFTP 服务器
- python - 使用 kubernetes cronjobs 调度 django 命令
- java - 如何生成没有重复号码的 4 位密码
- powershell - 如何刷新 PowerBI 报表?