I have a file myfile
which has some text like this:
self.Server('10.0.0.1', '00:00:00:00:00:01', 1)
self.Server('10.0.0.2', '00:00:00:00:00:01', 2)
I have written a shell script to write into myfile
. The script has some variables defined:
hosts=100
servers=20
......
I want to modify the line self.Server('10.0.0.x', '00:00:00:00:00:0x', x)
in myfile
and write it as many times as the value of the variable servers
, where x ranges from 1 to value of servers(20 in this case).
Note: myfile
might already have some of the entries. For example if previous value of servers
was 4 and new value is 6, only two entries need to be added. Also, if the previous value was 6 and the new value is 3, first 3 entries need to be removed.
Can someone please guide how can I achieve it?
Thanks.
#!/bin/bash
servers=20
for ((i=1; i<=servers; i++));; do
printf "%s%02d%s\n" "self.Server('10.0.0.$i', '00:00:00:00:00:" "$i" "', $i)" >> myfile
done
Run result:
self.Server('10.0.0.1', '00:00:00:00:00:01', 1)
self.Server('10.0.0.2', '00:00:00:00:00:02', 2)
self.Server('10.0.0.3', '00:00:00:00:00:03', 3)
self.Server('10.0.0.4', '00:00:00:00:00:04', 4)
self.Server('10.0.0.5', '00:00:00:00:00:05', 5)
self.Server('10.0.0.6', '00:00:00:00:00:06', 6)
self.Server('10.0.0.7', '00:00:00:00:00:07', 7)
self.Server('10.0.0.8', '00:00:00:00:00:08', 8)
self.Server('10.0.0.9', '00:00:00:00:00:09', 9)
self.Server('10.0.0.10', '00:00:00:00:00:10', 10)
self.Server('10.0.0.11', '00:00:00:00:00:11', 11)
self.Server('10.0.0.12', '00:00:00:00:00:12', 12)
self.Server('10.0.0.13', '00:00:00:00:00:13', 13)
self.Server('10.0.0.14', '00:00:00:00:00:14', 14)
self.Server('10.0.0.15', '00:00:00:00:00:15', 15)
self.Server('10.0.0.16', '00:00:00:00:00:16', 16)
self.Server('10.0.0.17', '00:00:00:00:00:17', 17)
self.Server('10.0.0.18', '00:00:00:00:00:18', 18)
self.Server('10.0.0.19', '00:00:00:00:00:19', 19)
self.Server('10.0.0.20', '00:00:00:00:00:20', 20)
The script would look like:
#!/bin/bash
hosts=100
servers=20
for ((x = 1; x < $servers + 1; x++))
do
temp=`printf "%02d" $x`
echo "self.Server('10.0.0.$x', '00:00:00:00:00:$temp', $x)" >> myfile
done
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.