쉘스크립트 초보자 질문 드립니다.
글쓴이: gorogong / 작성시간: 수, 2022/05/25 - 10:50오전
#!/bin/bash ##v.2.0 export IP1="0" export IP2="0" export IP3="0" export DATE=$(date +"%F") PS3="Select the option " select char in "1, Check IP" "2, IP List" "3, Exit" #"4"# do case $char in 1*) read -p "Enter IP xxx.xxx.xxx. > " -t 20 IP1 read -p "Enter start IP xxx > " -t 20 IP2 read -p "Enter last IP xxx > " -t 20 IP3 echo -e "\033[32;1m"IP Checking!"\033[0m" echo -e " " > /tmp/ip_list_$DATE > /dev/null while [[ $IP2 -lt $IP3 ]]; do ping -c 1 -w 1 $IP1$IP2 > /dev/null if [[ $? == 0 ]]; then echo $IP1$IP2 is In-use. >> /tmp/ip_list_$DATE ; else echo $IP1$IP2 is Dead or Available. >> /tmp/ip_list_$DATE ; fi IP2=$(($IP2+1)) done echo -e "\033[31;1m"IP Check well done! please verify IP"\033[0m" ;; 2*) grep -q Avail* 2> /dev/null < /tmp/ip_list_$DATE if [[ $? == 0 ]]; then grep -r --color=always Available /tmp/ip_list_$DATE |sort -u else echo -e "\033[31;3m"There is no available IP"\033[0m" fi ;; 3*) echo "Good bye"; exit 0 ;; #4*) echo "You choose not yet menu it will be add section coming soon asap" ;; *) echo "!!Error select correctly number!!" esac done
위와 같은 스크립트 실행 시 결과 값
1) 1, Check IP 2) 2, IP List 3) 3, Exit <code> 이렇게 선택 숫자가 중복이 되어 나옵니다. 중복 제거를 위해 case문을 수정해서 재시도 해봤지만.. 그러면 스크립트가 제대로 동작을 못하더라구요.. 혹시 좋은 방법이 있을까요?.. 질문 봐주셔서 감사합니다.
Forums:
select 명령이 번호를 알아서 붙여주므로,
select 명령이 번호를 알아서 붙여주므로, 메뉴 항목마다 넣으신 번호를 빼고 메뉴명으로 직접 매칭하면 될 것 같네요.
아.. 자동 부여군요! 감사합니다 원하는 대로 작동
아.. 자동 부여군요! 감사합니다 원하는 대로 작동 합니다!
댓글 달기