我有一些工作脚本,在开始时我输入启动参数(服务器IP,用户登录和root登录),每次当我需要在另一台服务器上重启此脚本时,我需要编辑脚本,到更改服务器IP变量。 如何更改此项,在变量中输入一组IP地址,可能在某个数组中,当脚本完成第一个IP时,它会转到第二个,依此类推到IP列表的末尾?
脚本示例:
##!/bin/bash
serv_address="xxx.xx.xx.xxx"
"here goes some script body"
答案 0 :(得分:1)
使用文本文件存储ips,如
$ cat ip.txt
xxx.xx.xx.xxx
xxx.xx.xx.xxx
xxx.xx.xx.xxx
xxx.xx.xx.xxx
然后修改你的脚本
#!/bin/bash
while read ip
do
#some command on "$ip"
done<ip.txt # Your text file fed to while loop here
或使用bash数组
declare ip_array=( xxx.xx.xx.xxx xxx.xx.xx.xxx xxx.xx.xx.xxx )
for ip in "${ip_array[@]}"
do
#something with "$ip"
done
两者都可以让您以后灵活地添加/删除IP地址。
答案 1 :(得分:1)
你确实想要一个数组,然后你可以用循环迭代它。
serv_address=(xxx.xx.xx.xxx yyy.yy.yyy.yy)
for address in "${serv_address[@]}"; do
if ! ping -c 1 "$serv_address"; then
echo "$serv_address is not available" >&2
continue
fi
# Do some stuff here if the address did respond.
done