Go to content

카테고리 없음

이거슨 스누피님을 위한 포스트


#!/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"

다 만들어놓고 보니, 가독성은 좀 떨어지는듯;;
하지만 파일은 안만드는 장점이 있습니다.. ㅎㅎ