Script to add static ip to network interfaces
I found some mistakes in your script. Here is how I think it should be (assuming that these are the things that you want to do this script):
#!/bin/bash
getinfo()
{
read -p "Enter the IP of your router: (looks like 192.168.1.1) " routerip
read -p "Enter the netmask for your network: (looks like 255.255.255.0) " netmask
read -p "Enter the ip address for your server: (looks like 192.168.1.22) " staticip
}
writeinterfacefile()
{
cat << EOF > $1
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
#Your static network configuration
iface eth0 inet static
address $staticip
netmask $netmask
gateway $routerip
EOF
#don't use any space before of after 'EOF' in the previous line
echo ""
echo "Your informatons was saved in '$1' file."
echo ""
exit 0
}
file="/home/radu/test"
if [ ! -f $file ]; then
echo ""
echo "The file '$file' doesn't exist!"
echo ""
exit 1
fi
clear
echo "Let's set up a static ip address for your site"
echo ""
getinfo
echo ""
echo "So your settings are:"
echo "Address of your Router is: $routerip"
echo "The Mask for the Network is: $netmask"
echo "Your decided Server IP is: $staticip"
echo ""
while true; do
read -p "Are these informations correct? [y/n]: " yn
case $yn in
[Yy]* ) writeinterfacefile $file;;
[Nn]* ) getinfo;;
* ) echo "Pleas enter y or n!";;
esac
done
Related videos on Youtube
Josh
I`m an Ubuntu enthusiast who likes the web in general. I think linux in general is the base for the Internet. Therefore I like to learn as lot as I can about Linux Web techniques and all related stuff that fits into my leaky brain. Currently I try to develop an automated installer for a Drupal Development Server based on Ubuntu 14 LTS and extend this basic system with basic features like ftp or even a desktop Chooser and so on. If you like o take a look go to https://horvan.github.io/drubuntu
Updated on September 18, 2022Comments
-
Josh over 1 year
I've got a little script here that should be pretty self explanatory but I can't figure out why the while loop doesn't handle the functions right. It should show the getinfo function again if the user presses N for no and if the user press yes it should execute the writeinterfacefile function.
What is wrong whith my loop?
#!/bin/bash echo "Let's set up a static ip address for your site" echo"" getinfo() { read -p "Enter the IP of your router: (looks like 192.168.1.1) " routerip read -p "Enter the netmask for your network: (looks like 255.255.255 " netmask read -p "Enter the ip address for your server: (looks like 192.168.1.22 " staticip } writeinterfacefile() { cat << EOF >> /home/ubuntu/test # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp #Your static network configuration iface eth0 inet static address echo $staticip netmask echo $netmask gateway echo $routerip EOF } clear getinfo echo"" echo"So your settings are" echo "Address of your Router is " echo -n $routerip echo "The Mask fpr the Network is " echo -n $netmask echo "Your decided Server IP is " echo -n $istaticp echo"" echo "Are these informations correct? (Y/n)" while true; do read -p "Are these informations correct? [y/N]" yn? case $yn in [Yy]* ) writeinterfacefile ;; [Nn]* ) getinfo ;; * ) echo "Pleas enter Y or n";; esac done