This Bash script flushes all IP addresses from a predefined list of network interfaces, then presents a menu allowing the user to configure one of several predefined IPv4/IPv6 address and route setups (while unsetting proxy variables) before exiting.
#!/bin/bash
# List of interfaces
interfaces=("enp5s0" "enp6s0" "enp7s0")
# Loop through each interface and flush IP addresses
for iface in "${interfaces[@]}"; do
echo "Flushing IP addresses from $iface..."
ip addr flush dev "$iface"
done
echo "All specified interfaces have been flushed."
# Define the menu options as an array
options=("instance1" "instance2" "instance3" "Exit")
# Set the prompt for the select statement
PS3="Please choose an option: "
# Loop indefinitely until the user chooses to exit
select choice in "${options[@]}"; do
case $choice in
"instance1")
ip link set enp5s0 up && \
ip -4 addr add 192.168.1.63/31 dev enp5s0 && \
ip -4 route add 0.0.0.0/0 via 192.168.1.62 dev enp5s0
ip -6 addr add 2001:db8:742:c01:151:8888:0:a/96 dev enp5s0
ip -6 route add ::/0 via 2001:db8:742:c01:151:8888:0:1 dev enp5s0
echo ""
ip link show enp5s0
ip -4 addr show enp5s0
ip -6 addr show enp5s0
ip -4 route show
ip -6 route show
unset http_proxy
unset https_proxy
break
;;
"instance2")
ip link set enp7s0 up && \
ip -4 addr add 192.168.1.65/31 dev enp6s0 && \
ip -4 route add 0.0.0.0/0 via 192.168.1.64 dev enp6s0
ip -6 addr add 2001:db8:742:c01:152:8888:0:a/96 dev enp6s0
ip -6 route add ::/0 via 2001:db8:742:c01:152:8888:0:1 dev enp6s0
echo ""
ip link show enp6s0
ip -4 addr show enp6s0
ip -6 addr show enp6s0
ip -4 route show
ip -6 route show
unset http_proxy
unset https_proxy
break
;;
"instance3")
ip link set enp6s0 up && \
ip -4 addr add 192.168.1.67/31 dev enp7s0 && \
ip -4 route add 0.0.0.0/0 via 192.168.1.66 dev enp7s0
ip -6 addr add 2001:db8:742:c01:153:8888:0:a/96 dev enp7s0
ip -6 route add ::/0 via 2001:db8:742:c01:153:8888:0:1 dev enp7s0
echo ""
ip link show enp7s0
ip -4 addr show enp7s0
ip -6 addr show enp7s0
ip -4 route show
ip -6 route show
unset http_proxy
unset https_proxy
break
;;
"Exit")
echo "Exiting menu. Goodbye!"
break # Exit the select loop
;;
*)
echo "Invalid option. Please choose a number from the menu."
;;
esac
echo # Add a blank line for readability
done