#!/bin/bash다 만들어놓고 보니, 가독성은 좀 떨어지는듯;;
# IPLIST Array로 선언
declare -a IPLIST
# 굳이 선언하지 않아도 되지만 Global이므로 가독성을 위해 선언.
NUMBER=0
# hostname을 $HOSTNAME 변수에 저장
HOSTNAME=`hostname`
# 불필요한 local network의 IP는 출력하지 않도록 grep -v 옵션 추가하고 해당 출력된 리스트를 IPLIST 어레이에 저장.
IPLIST=( `ifconfig | grep "inet addr" | sed 's/:/ /' | awk '{ print $3 }' | grep -v "127.0.0.1"` )
function ChooseNumber() {
#함수 내부에서만 사용하기에 local 선언
local i=1
clear
echo -e "\n\n\t==== IP List ====\n"
# ${IPLIST[@]} 는 어레이의 모든 내용 출력
for IPADDR in ${IPLIST[@]}; do
echo -e "\t$i - $IPADDR\n"
let i+=1
done
echo -e "\t=================\n"
read -p " Choose Number: " NUMBER
}
until [ $NUMBER -ge 1 ] && [ $NUMBER -le ${#IPLIST[@]} ]; do
ChooseNumber
done
# ARRAY는 0부터 시작하므로 사용자가 1을 입력할 경우 0이 되도록 -1 합니다.
echo "${IPLIST[$NUMBER-1]} $HOSTNAME"
하지만 파일은 안만드는 장점이 있습니다.. ㅎㅎ