▼▲▼スクリプト「change_ip_script.sh」の内容▼▲▼#!/bin/sh
#=============================
# | ■ 引数$1のテキストファイルの記述例
# | ens192,192.168.0.zzz/24,192.168.0.xxx,192.168.0.www
#=============================
# | ■ 配列の設定値の例
# | 【配列0】ARRmnt[0]=<インタフェース名>
# | 【配列1】ARRmnt[1]=<IPアドレス/プレフィックス値>
# | 【配列2】ARRmnt[2]=<ゲートウェイ>
# | 【配列3】ARRmnt[3]=<DNSのアドレス>
#=============================
# 環境変数IFSで区切って配列変数に格納する
#-----------------------------
IFS=,
while read -a ARRmnt
#-----------------------------
# ■ 全行の内容表示
# do echo ${ARRmnt[@]}
#-----------------------------
# ■ 変数に配列の値を格納
IFNAME=ARRmnt[0]
IPADDR=ARRmnt[1]
IP_GW=ARRmnt[2]
IP_DNS=ARRmnt[3]
#-----------------------------
# ■ 変更前の設定をファイル出力
nmcli d show ${IFNAME} > /tmp/nmcli_device_show_${IFNAME}_1.txt
#-----------------------------
# ■ 設定変更(IPアドレス)
if [ -n "${IPADDR}" ]; then
nmcli c modify ${IFNAME} ipv4.method manual ipv4.address ${IPADDR}
fi
#-----------------------------
# ■ 設定変更(GWアドレス)
if [ -n "${IP_GW}" ]; then
nmcli c modify ${IFNAME} ipv4.gateway ${IP_GW} ipv4.never-default no
fi
#-----------------------------
# ■ 設定変更(DNS)
if [ -n "${IP_DNS}" ]; then
nmcli c modify ${IFNAME} ipv4.dns ${IP_DNS}
fi
#-----------------------------
# ■ 設定反映
nmcli c up ${IFNAME}
#-----------------------------
# ■ 変更後の設定をファイル出力
nmcli d show ${IFNAME} > /tmp/nmcli_device_show_${IFNAME}_2.txt
#-----------------------------
# ■ 差分確認(修正箇所)
diff /tmp/nmcli_device_show_${IFNAME}_[12].txt
#-----------------------------
# ■ 引数$1を読み込ませて必要行数分だけ実行を繰り返す
done < $1