Im doing a zenity form for easy network configuration. The end user just fills in the information and the script does the rest.
Is there a better way to do this?
Any input from you guys is welcome.
Thanks
sudo sed -i.bak '7,8 d' /etc/network/interfaces sudo sed -i '/inet netmask/d' /etc/network/interfaces sudo sed -i '/inet nameservers/d' /etc/network/interfaces sudo sed -i '/inet address/d' /etc/network/interfaces sudo sed -i '/inet gateway/d' /etc/network/interfaces sudo sed -i "8a iface eth0 inet static" /etc/network/interfaces ip=$(zenity --entry --title="Ip adress" --text="Ip adress:") sudo sed -i "9a address $ip" /etc/network/interfaces mask=$(zenity --entry --title="Netmask" --text="Netmask address:") sudo sed -i "11a netmask $mask" /etc/network/interfaces gateway=$(zenity --entry --title="Gateway address" --text="Gateway address:") sudo sed -i "10a gateway $gateway" /etc/network/interfaces dns=$(zenity --entry --title="Dns" --text="Dns address:") sudo sed -i "12a dns-nameservers $dns" /etc/network/interfaces sudo sed -i "13a iface eth1 inet static" /etc/network/interfaces sudo sed -i "14a address $ip" /etc/network/interfaces sudo sed -i "15a gateway $gateway" /etc/network/interfaces sudo sed -i "16a netmask $mask" /etc/network/interfaces sudo sed -i "17a dns-nameservers $dns" /etc/network/interfaces zenity --question --text "Is the information accurate"; echo $? if [ $? > 0 ]; then echo "--- do it again ---" sudo cp home/Test/interfaces /etc/network/ #this copies a interfaces.bak #over the changed one sleep 3s exit fi
Now i changed to this:
cp /etc/network/interfaces /tmp/interfaces sed -i -e '7,8 d' \ -e '/inet address/d '\ -e '/inet netmask/d' \ -e '/inet nameservers/d' \ -e '/inet gateway/d' \ -e '/iface eth0 inet static/d' \ -e '/iface eth1 inet static/d' /tmp/interfaces sudo sed -i "8a iface eth0 inet static" /tmp/interfaces ip=$(zenity --entry --title="Ip adress" --text="Ip adress:") sudo sed -i "9a address $ip" /tmp/interfaces mask=$(zenity --entry --title="Netmask" --text="Netmask address:") sudo sed -i "10a netmask $mask" /tmp/interfaces gateway=$(zenity --entry --title="Gateway address" --text="Gateway address:") sudo sed -i "11a gateway $gateway"/tmp/interfaces dns=$(zenity --entry --title="Dns" --text="Dns address:") sudo sed -i "12a dns-nameservers $dns" /tmp/interfaces sudo sed -i "13a iface eth1 inet static" /tmp/interfaces sudo sed -i "14a address $ip" /tmp/interfaces sudo sed -i "15a gateway $gateway" /tmp/interfaces sudo sed -i "16a netmask $mask" /tmp/interfaces sudo sed -i "17a dns-nameservers $dns" /tmp/interfaces wait 1s; sudo zenity --text-info --height=500 --width=400 < <(cat /tmp/interfaces) if ! zenity --question --text "Är alla addresser rätt ifyllda"; then cp /tmp/interfaces /etc/network/interfaces exit fi And nothing happens... no changes to the file whatsoever.. help? :D
sudoin a script, run the script itself as root if you need it. Are you creating abashscript here?if ! zenity --question --text "Is the information accurate" ; then …