[英]Bash - Looping Through the File
我正在嘗試通過所有文件腳本運行一個簡單的循環,但它給了我一個意想不到的結果。
我正在使用用戶配置文件來循環內容(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
001565數據集C2.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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.