changeIP.sh
vi changeIP.sh
chmod +x changeIP.sh
#!/bin/bash export IFCFG=/etc/sysconfig/network-scripts/ifcfg-ens33 PS3="select your workspace of IP: " select i in "home" "hospital-outer" "hospital-inner" "check" do case $i in home) echo -e "工作在家,设置ip如下:" sed -r -i s/^IPADDR=.*$/IPADDR="192.168.1.48"/g $IFCFG sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG sed -r -i s/^GATEWAY=.*$/GATEWAY="192.168.1.1"/g $IFCFG sed -r -i s/^DNS=.*$/DNS="192.168.1.1"/g $IFCFG systemctl restart network break ;; hospital-outer) echo "杏花岭中心医院外网,设置ip如下:" sed -r -i s/^IPADDR=.*$/IPADDR="192.168.3.48"/g $IFCFG sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG sed -r -i s/^GATEWAY=.*$/GATEWAY="192.168.3.1"/g $IFCFG sed -r -i s/^DNS=.*$/DNS="192.168.3.1"/g $IFCFG systemctl restart network break ;; hospital-inner) echo "杏花岭中心医院内网,设置ip如下:" sed -r -i s/^IPADDR=.*$/IPADDR="111.111.112.48"/g $IFCFG sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG sed -r -i s/^GATEWAY=.*$/GATEWAY="111.111.112.254"/g $IFCFG sed -r -i s/^DNS=.*$/DNS="111.111.110.250"/g $IFCFG systemctl restart network break ;; check) echo "查看ip如下:" break ;; *) echo -e "\033[35mUsage:{$0 1|2|3} \033[0m" ;; esac done cat $IFCFG|grep -E '^IPADDR|^PREFIX|^GATEWAY|^DNS'
改进changeIP.sh
#!/bin/bash export IFCFG=/etc/sysconfig/network-scripts/ifcfg-ens33 checkip(){ echo $IPADDR|grep "^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}$" > /dev/null; #IP地址必须为全数字 if [ $? -ne 0 ];then echo "输入ip非法!" exit fi for ((i=1;i<=4;i++)) do num=`echo $IPADDR|cut -d. -f$i` ##每个数值必须在0-255之间 if [[ $num -gt 255 || $num -lt 0 ]];then echo "输入ip数值大小不符合!" exit fi done } checkprefix(){ if [[ $1 -gt 32 || $1 -lt 0 ]];then echo "输入ip数值大小不符合!" exit fi } PS3="select your workspace of IP: " select i in "home" "hospital-outer" "hospital-inner" "user-defined" "check" do case $i in home) echo -e "工作在家,设置ip如下:" sed -r -i s/^IPADDR=.*$/IPADDR="192.168.1.48"/g $IFCFG sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG sed -r -i s/^GATEWAY=.*$/GATEWAY="192.168.1.1"/g $IFCFG sed -r -i s/^DNS=.*$/DNS="192.168.1.1"/g $IFCFG break ;; hospital-outer) echo "杏花岭中心医院外网,设置ip如下:" sed -r -i s/^IPADDR=.*$/IPADDR="192.168.3.48"/g $IFCFG sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG sed -r -i s/^GATEWAY=.*$/GATEWAY="192.168.3.1"/g $IFCFG sed -r -i s/^DNS=.*$/DNS="192.168.3.1"/g $IFCFG break ;; hospital-inner) echo "杏花岭中心医院内网,设置ip如下:" sed -r -i s/^IPADDR=.*$/IPADDR="111.111.112.48"/g $IFCFG sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG sed -r -i s/^GATEWAY=.*$/GATEWAY="111.111.112.254"/g $IFCFG sed -r -i s/^DNS=.*$/DNS="111.111.110.250"/g $IFCFG break ;; user-defined) echo "用户自定义,ip信息" read -p "请输入ip地址:" IPADDR checkip $IPADDR sed -r -i s/^IPADDR=.*$/IPADDR="$IPADDR"/g $IFCFG read -p "请输入掩码:" PREFIX checkprefix $PREFIX sed -r -i s/^PREFIX=.*$/PREFIX="$PREFIX"/g $IFCFG read -p "请输入网关:" IPADDR checkip $GATEWAY sed -r -i s/^GATEWAY=.*$/GATEWAY="$GATEWAY"/g $IFCFG read -p "请输入域名解析:" IPADDR checkip $DNS sed -r -i s/^IPADDR=.*$/IPADDR="$DNS"/g $IFCFG break ;; check) echo "查看ip如下:" break ;; *) echo -e "\033[35mUsage:{$0 1|2|3|4} \033[0m" ;; esac done cat $IFCFG|grep -E '^IPADDR|^PREFIX|^GATEWAY|^DNS' read -p "是否重启应用ip设置(yes/no)?" INPUT while true;do case $INPUT in y|yes) echo "you input is YES" systemctl restart network break ;; n|no) echo "you input is NO" break ;; *) echo -n "Input ERROR,please input yes or no?" read INPUT ;; esac done