使用场景,虚拟机的模板机,在克隆后,用来配置IP地址和主机名的,不想每一次都手工改配置文件的,可以看一下,系统 Rocky 8
modify_ip_hostname.sh
#!/bin/bash
# 默认值
new_ip="192.168.1."
new_hostname="new-hostname"
interface="eth0"
# 检查是否提供了参数
if [ "$#" -eq 0 ]; then
echo "Usage: $0 [-i IP] [-h HOSTNAME] [-n INTERFACE]"
exit 1
fi
# 解析命令行参数
while getopts ":i:h:n:" opt; do
case ${opt} in
i )
new_ip=$new_ip$OPTARG
;;
h )
new_hostname=$OPTARG
;;
n )
interface=$OPTARG
;;
\? )
echo "Invalid option: -$OPTARG" 1>&2
exit 1
;;
: )
echo "Invalid option: -$OPTARG requires an argument" 1>&2
exit 1
;;
esac
done
shift $OPTIND
# 如果提供了新的IP地址,则修改IP地址
if [ -n "$new_ip" ]; then
sudo ip addr flush dev $interface
sudo ip addr add $new_ip/24 dev $interface
sudo ip link set dev $interface up
fi
# 如果提供了新的主机名,则修改主机名
if [ -n "$new_hostname" ]; then
sudo hostnamectl set-hostname $new_hostname
fi
# 输出修改后的主机名和IP地址
echo "Modified IP address: $new_ip"
echo "Modified hostname: $new_hostname"