리눅스 bash 선택문 만들기
2011. 10. 27. 00:00 |
리눅스
회사에서 각 서버에 뭘 설치해야 하는데 IP, HOSTNAME 등을 인자로 넘겨줘야 합니다. 그런데 HOSTNAME은 바로 처리가 가능하지만, IP의 경우 NIC가 여러개 있다보니 번호로 선택할 수 있도록 bash 스크립트를 만들고 싶더군요.
윈도우에서는 제가 배치파일을 자주 짜다보니 이정도는 쉽게 처리하겠는데, 리눅스는 잘 몰라서 간단한 선택문인데도 만드는데 애를 먹었습니다.
일단 제가 만들어본 스크립트를 한번 봐주세요.
#!/bin/bash ifconfig | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}' > iplist numberofips=$(cat iplist | wc -l) choosenumber() { clear echo echo echo " ==== IP List ====" echo cat iplist | while read line; do let i=i+1 echo " $i - $line" done echo echo " =================" echo echo -n " Choose the number : " read number } until [ "$number" -ge "1" -a "$number" -le "$numberofips" ]; do choosenumber done chosenip=$(cat iplist | sed -n "$number"p) echo echo echo " You chose $chosenip" echo echo
아래는 실행하고 1을 선택한 결과입니다.
전체적인 동작 방식은
1. IP 리스트를 화면에 뿌려준다.
2. 번호를 선택하도록 한다.
3. 선택한 번호가 1보다 크거나 같고 IP 리스트에 뿌려진 갯수보다 작거나 같은 경우에만 sed로 해당 라인을 뽑아낸다.
그 외 엉뚱한 숫자나 문자를 입력한 경우 2번 항목으로 다시 되돌아간다.
혹시 좀 더 효율적이거나 안정적인 선택문을 만들 방법이 있다면 조언해주시면 고맙겠습니다.
'리눅스' 카테고리의 다른 글
리눅스에서 윈도우 start 명령어와 비슷한 효과를 (2) | 2012.01.30 |
---|---|
윈도우에서 작성한 Shell 스크립트 리눅스에서 에러나는 경우 (7) | 2011.12.24 |
리눅스에서 iSCSI Target에 연결하는 방법 (13) | 2011.11.29 |
리눅스 아파치 웹서버 구축하기 - XAMPP (20) | 2011.11.21 |
리눅스 bash 선택문 만들기 (10) | 2011.10.27 |
리눅스 추천 SSH 클라이언트 - Xshell (14) | 2011.09.25 |
리눅스에서 Ping 테스트시 시각 표시하기 (2) | 2011.09.25 |
리눅스 서버 root 패스워드 한꺼번에 변경하기 (7) | 2011.06.11 |
Citrix XenCenter에서 리눅스 싱글모드 부팅 - root 패스워드 초기화 (7) | 2011.05.16 |
2011.10.27 03:44
고수님도 어려울때가 다 있네요...
2011.10.27 08:07
저는 x윈도우나 쓰고 있습니다... choosenumber은 듣지도 못했네요.
2011.10.27 10:34 신고
저건 그냥 제가 선언한 함수에요.
2011.10.30 14:04
쉘 스크립트에서도 함수가???
2011.10.27 23:53
안녕하세요~ 여기서 윈7 많은 도움을 받고 있는데요..
질문할곳이 마땅히 안보여서 질문드려요~
윈7 파일마다 이름이 있잖아요.. 이름이 길어서 끝에가 .... 이렇게 나오는데..
XP에선 파일을 클릭 하면 파일이름이 전체가 보이는데 윈7은 그게 안됩니다..
그래서 영화 받아놓고 자막여러개 받아놓으면 파일 끝부분이 안보여서 릴을 찾는게 힘들어요..
그래서 우클리후에 속성가서 확인하는데.. 너무 번거 롭네요.. 이거 어떻게 해결해야 할까요..??
참고로 아이콘 크기를 보통으로 해서요..
2012.01.05 15:14
한번 눌리면 나올것 같은데...
2011.10.28 09:10 신고
아주 조금 효율적으로 한다면 아래 라인을 한줄로도 만들수 있겠네요 ㅎㅎ
echo -n " Choose the number : "
read number
---------------------------
read -p " Choose the number : " number
2011.10.28 11:58 신고
감사합니다. read에 옵션이 있었군요. ^^
2011.11.30 17:38 신고
짬이 나서 좀더 개선한 버전을 만들어봤는데, 너무 늦었나요? ^^;
이스케이프 캐릭터가 댓글에 먹지 않아서 포스팅으로 대신합니다.
http://1kko.com/2460621
2012.11.14 01:49
연구 후 이제 귀하의 웹사이트에 블로그 게시물의 일부, 그리고 진정한 블로깅의 방법이 좋아요. 난 곧 내 북마크 사이트 목록에 북마크를 다시 확인합니다. PLS으로 내 웹 사이트를 확인하고 내가 뭘 생각하는지 알려주십시오.