bash - Bash - 循环文件
问题描述
我正在尝试通过所有文件脚本运行一个简单的循环,但它给了我一个意想不到的结果。
我正在使用用户配置文件来循环内容(example.conf)。
datasetA1 datasetB1 datasetC1
datasetA2 datasetB2 datasetC2
datasetA3 datasetB3 datasetC3
datasetA4 datasetB4 datasetC4
脚本:
#!/bin/bash
ramal=`cat /data/user/example.conf | awk '{ print $1 }'`
name=`cat /data/user/example.conf | awk '{ print $2 }'`
macid=`cat /data/user/example.conf | awk '{ print $3 }'`
for ramais in ${ramal}; do
for names in ${name}; do
for idmacs in ${macid}; do
echo "
[account]
path = /config/voip/sipAccount0.cfg
Enable = 1
Label = ${names}
DisplayName = ${names}
AuthName = ${ramais}
UserName = ${ramais}
password = ${ramais}
" > 001565${idmacs}.cfg
echo " "
echo "**** ${ramais} Nome ${names} Mac ${îdmacs} success provisioned ***** "
done
done
done
结果:
001565datasetC1.cfg
[account]
path = /config/voip/sipAccount0.cfg
Enable = 1
Label = datasetB1
DisplayName = datasetB1
AuthName = datasetA1
UserName = datasetA1
password = datasetA1
001565数据集B1.cfg
[account]
path = /config/voip/sipAccount0.cfg
Enable = 1
Label = datasetB1
DisplayName = datasetB1
AuthName = datasetA1
UserName = datasetA1
password = datasetA1
预期的
001565datasetC1.cfg
[account]
path = /config/voip/sipAccount0.cfg
Enable = 1
Label = datasetB1
DisplayName = datasetB1
AuthName = datasetA1
UserName = datasetA1
password = datasetA1
001565datasetC2.cfg
[account]
path = /config/voip/sipAccount0.cfg
Enable = 1
Label = datasetB2
DisplayName = datasetB2
AuthName = datasetA2
UserName = datasetA2
password = datasetA2
解决方案
嵌套循环为您提供笛卡尔积。您只需要一个循环来一次读取一行中的所有字段:
while read -r ramais names idmacs
# insert you echo commands here
echo "example: $ramais, $names, $idmacs"
done < /data/user/example.conf
推荐阅读
- javascript - 从比较中列出清单
- javascript - DiscordJS:检查输入是否在字符串中
- php - MySQLi 已启用但未在 Windows Server 2008 中加载
- node.js - 如何在 node.js 中的一台服务器上运行多个多人游戏(服务器)
- python - list1 在我的代码中的任何地方都不会被分配等于 list2,但是 list1 的值仍然被复制到 list2
- android - 当只有一个建议时,AutoCompleteTextView 建议隐藏在键盘下
- javascript - 更新 async forEach 以根据来自另一个集合的属性更新每个文档属性
- javascript - 使用地图获取数组中每个项目的数量
- reactjs - 如何使用 React 的 CSSTransitionGroup 淡入/淡出我的警报消息?
- javascript - 从序列化为 JSON 的 Django 对象中提取值的问题