在bash脚本完成后,更改变量并重新启动脚本

时间:2016-08-25 12:16:41

标签: linux bash

我有一些工作脚本,在开始时我输入启动参数(服务器IP,用户登录和root登录),每次当我需要在另一台服务器上重启此脚本时,我需要编辑脚本,到更改服务器IP变量。 如何更改此项,在变量中输入一组IP地址,可能在某个数组中,当脚本完成第一个IP时,它会转到第二个,依此类推到IP列表的末尾?

脚本示例:

##!/bin/bash

serv_address="xxx.xx.xx.xxx"

"here goes some script body"

2 个答案:

答案 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