Shell Script 7

시스템에서 사용중인 PCI Slot 할당 내역 조회 스크립트

시스템에 할당되어 있는 PCI Slot의 사용내역을 확인하는 스크립트 입니다. SLot별로 어떤 Device가 연결되어 있는지 직관적으로 파악이 가능합니다. 1. 스크립트 (slot.sh) ----------------------------------------------------------------- #!/bin/sh cnt=1 NET_DIR="/sys/class/net" DISK_DIR="/sys/class/scsi_disk" TAPE_DIR="/sys/class/scsi_tape" clear echo "#######################################" echo -n "HOSTNAME :" hostname dmidecode | grep "Product Name" echo "..

[UNIX/LINUX] Shell Script - sed 명령을 이용한 new line <-> 특정 문자열 (2)

지난 글에 이어서 이번에는 sed를 이용하여 new line을 특정 문자열로 변경하는 방법에 대해 말씀 드리도록 하겠습니다. (2) new line --> 특정 문자열 # cat test.txt1111122222333334444455555 위와 같은 컨텐츠를 가진 txt 파일이 있다고 가정합니다. 위 컨텐츠에서 Enter가 적용된 부분(new line)을 ':'(colon)으로 변경하고자 한다면 다음과 같이 수행합니다. # sed 'N;N;N;N;s/\n/:/g' test.txt sed 명령에서 'N' 옵션은 줄바꿈문자(\n)를 /A패턴/ 공간에 더하고 입력의 다음 줄을 읽어 패턴 스페이스에 덧붙이겠다는 뜻입니다. 무슨 말인지 이해가 잘 되시나요? 사실 저는 아직도 완전히 이해가 되지는 않습니다.;;;;..

[UNIX/LINUX] Shell Script - sed 명령을 이용한 new line <-> 특정 문자열 (1)

이번 글은 sed 명령어를 이용하여 new line(개행문자 \n)을 특정 문자열로 바꾸거나, 특정 문자열을 new line으로 변경하는 방법에 대한 글입니다. Shell Script를 작성하다 보면 한꺼번에 많은 내용을 바꾸어야 할 때가 종종 발생하는데, 그 때 유용하게 쓰이는 명령어가 바로 이 'sed' 명령어죠. sed와 비슷한 역할을 하는 명령어로 'tr' 이라는 명령어도 있습니다. 각자가 처한 상황에 맞게, 취향에 따라 골라 쓰시면 되는데요. 그러한 내용 변경 상황 중에서도 new line, 다시 말해 줄바꿈 상태를 특정 문자열로 변경하거나, 그 반대로 특정 문자열을 줄바꿈 상태로 바꿔야 하는 경우가 있습니다. 그럴 때 다음과 같이 사용하시면 되겠습니다. (1) 특정 문자열 --> new lin..

[UNIX/LINUX] Shell Script 기본 - 5.case문 (1) 기본 사용법 및 예제

5. case문 (1) 기본 사용법 및 예제 case 변수 in 경우1) ~ ;; 경우2) ~ ;; 경우3) ~ ;; ...esac case문의 사용법은 아주 간단합니다. shell script를 아무 생각없이 코딩하다 보면 무수히 많은 if문을 남발하게 되고 소스 자체가 지저분해 보이게 되는데 이 때 이 case문만 적절히 사용할 줄 알아도 훨씬 심플하고 보기 좋은 shell script를 작성할 수 있습니다. 그럼 바로 예제문을 통해 설명 드리겠습니다. 먼저 동일한 결과를 보여주는 if문부터 보도록 하겠습니다. tmpSize=`df -g /tmp | grep tmp | awk '{print $3}' | cut -d '.' -f 1` echo 'The size of /tmp filesystem '${t..

[UNIX/LINUX] Shell Script 기본 - 4.while문 (1) 기본 사용법 및 예제

4. while문 (1) 기본 사용법 및 예제 while [ 조건식 ]; do // while문 시작 ~done // while문 종료 for문과 마찬가지로 while문 또한 루프 처리를 담당합니다. 사용법이 다소 다르므로 상황에 따라 적절히 선택해서 사용해야 하는데요. 이 while문 역시 조건식 뒤에 세미콜론을 사용하지 않고 사용 가능합니다. while문의 조건식엔 보통 산술 비교 형태가 들어갑니다. 가령, 다음과 같은 식이지요. while [ ${index} -le 10 ] // index 변수값이 10보다 작거나 같은 동안 while문 수행do ~done 위와 같은 조건식으로 시작하여 '~' 로 처리한 컨텐츠 부분에 그 조건식에 위배되는 순간이 오게 되면 while문을 종료하는 식이지요. 헌데 f..

[UNIX/LINUX] Shell Script 기본 - 3.for문 (2) 예제

#!/bin/shif [ -d $1 ]; then cd $1 if [ -f $2 -a -s $2 ]; then echo $2' is file and has contents more than one character.' array=`cat $1/$2` for day in ${array}; do if [ -n ${day} ]; then if [ ${day} == "Fri" -o ${day} == "Sat" ]; then echo ${day}' is very happy day!!' else echo ${day}' is gloomy day.' fi fi done else echo $2' is not file or has zero character.' fifi 앞서 if문 예제 글에서 보여 드렸던 예제 스크립트보..

[UNIX/LINUX] Shell Script 기본 - 2.기본 문법 (3) 배열

(3) 배열 배열을 선언하여 값을 할당하는 방법에는 크게 두 가지 정도가 있습니다. 하나는 배열의 인덱스 하나하나를 구분하여 각각의 인덱스에 일일이 값을 지정하는 방법과, 또 다른 하나는 뭉탱이로 배열에 값을 넣어주는 방법입니다. 먼저 인덱스 하나하나에 값을 따로따로 지정하는 방법은 다음과 같습니다. array[0]='Shell'array[1]='Script'array[2]='Programming' 위 예제의 경우, 인덱스 '0'에는 'Shell'이란 문자열이, 인덱스 '1'에는 'Script'란 문자열이, 인덱스 '2'에는 'Programming'이란 문자열이 각각 지정되었습니다. 위와 같이 지정한 후, 다른 라인에서 해당 배열 변수값을 호출하고자 할 때는 아래와 같이 사용하면 됩니다. echo ${a..