#!/usr/local/bin/bash # # functions to choose which IP to bind. # for including in others scripts. # # (c) kpn, pepe@kahvipannu.fi # BIND="0.0.0.0" function read_ips { i=1; for ips in `ifconfig -a | egrep '[[:space:]][0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}[[:space:]]' | awk '{print$2}'`; do ip[$i]="$ips"; let i=++i; done echo echo 'Look for ip you like bind with up/down arrow keys, then select with enter:' echo } function choose { i=1; while [ 0 ]; do if [ $i -eq 0 ] then i=1; fi if [ ! ${ip[$i]} ] then let i=i-1; fi echo -en '\r'${ip[$i]}' \r' read -sn 1 k case "$k" in "B") let i=i+1; ;; "A") let i=i-1; ;; "") echo echo "BIND to ${ip[$i]} (y/N)?" read -sn 1 yn if [ "$yn" = "y" ] || [ "$yn" = "Y" ] then break else echo 'Look for ip you like bind with up/down arrow keys, then select with enter:' echo fi ;; esac done BIND=${ip[$i]} } read_ips choose echo echo 'BINDING to ip '$BIND