반응형

쉘스크립트 9

쉘 스크립트(Shell Script) 디버깅

디버깅 오류 발생 복잡한 스크립트를 작성하다 보면 오류가 자주 발생 구문 오류는 바로 확인하여 수정 가능 실행 오류는 추적하기 쉽지 않음 쉘은 별도의 디버거를 제공하진 않지만 각 행의 실행을 추적할 수 있는 방법 제공 bash –x를 이용한 디버깅 가장 많이 사용되며, 간단한 스크립트 디버깅 방법 -x 옵션으로 실행하면 각 행이 실행될 때마다 화면에 출력 $ bash –x test_while +count=1 +sum=0 +(( count

쉘 스크립트(Shell Script) 함수

함수 앨리어스를 이용하면 간단한 명령들을 하나의 다른 이름으로 재정의하여 사용할 수 있음 명령을 조건에 따라 다르게 실행하거나 인자를 받아 처리해야 할 때 함수를 사용 함수는 스크립트 안에서 정의하여 프로그래밍에 활용될 수도 있고, 사용자 초기화 파일에 정의하여 나만의 명령으로 사용할 수도 있음 함수의 정의 함수를 프롬프트에서 정의해 사용 가능 함수의 본문을 나타내는 중괄호는 함수 이름 다음에 써도 되지만, 앞뒤에 공백을 주어 다른 문자열과 구분해야 함 기본 형식 function functioname { 명령들 } 지우려는 파일을 휴지통으로 보내는 함수 만들기 휴지통으로 사용할 디렉토리 생성 디렉토리 이름은 .으로 시작하여 숨김 파일로 프롬프트에서 function 키워드와 함수 이름을 입력하면 프롬프트가..

쉘 스크립트(Shell Script) 제어문 - select, continue, until 문

until 문 조건 명령이 정상 실행될 때까지 주어진 명령을 반복 실행 while 문과 반복 실행 조건이 반대하는 점을 제외하고는 거의 유사한 기능 제공 형식 until 조건명령 do 명령 done 스크립트 예 $ cat -n test_until 1 #!/bin/bash 2 # 3 # test until loop 4 # 5 6 echo “Input name :” 7 read person 8 9 until who | grep $person # > /dev/null 10 do 11 sleep 12 done 13 14 echo “\007” # beep $ 실행 결과 $ chmod +x test_until $ ./test_until Input name : user2 user2 pts/3 $ select 문 메뉴..

쉘 스크립트(Shell Script) 제어문 - for, while 문(반복문)

for 문 리스트 안의 각 값들에 대해 지정한 명령을 순차적으로 실행 형식 for 변수 in list do 명령 done 스크립트 예 $ cat -n test_for 1 #!/bin/bash 2 # 3 # test for loop 4 # 5 6 for num in 0 1 2 7 do 8 echo “Number is $num” 9 done $ 실행 결과 $ chmod +x test_for $ ./test_for Number is 0 Number is 1 Number is 2 $ 외부 파일의 내용 참조 $(< file)을 사용하여 file의 내용을 입력으로 받아, white space로 구분되는 단어를 한 번에 한 개씩 처리 $(< file)은 cat list로 바꿀 수 있음 스크립트 예 $ cat list..

쉘 스크립트(Shell Script) 제어문 - case 문

case 문 주어진 변수의 값에 따라 실행할 명령을 따로 지정 변수의 값이 value1이면 ;;을 만날 때까지 명령을 실행 일치하는 값이 없으면 기본값인 * 다음에 나오는 명령을 실행 형식 case 변수 in value1) 명령;; value2) 명령;; *) 명령;; esac 스크립트 예 $ cat -n test_case 1 #!/bin/bash 2 # 3 # test case 4 # 5 echo “Select command : ” 6 read cmd 7 8 case $cmd in 9 [0-9]) # 0~9 digit 10 date 11 ;; 12 cd|CD) # cd or CD 13 echo $HOME 14 ;; 15 [aA-C]*) # string with a, A, B, C 16 pwd 17 ;;..

쉘 스크립트(Shell Script) 제어문 - if 문

if 문 주어진 조건을 만족할 때만 명령을 실행 if ~ then ~ else 문 if 다음에 주어진 조건 명령을 실행하여 종료값이 0이면 then 다음의 명령을 실행 0이 아니면 else 다음의 명령을 실행 조건 명령에 연산식이 올 경우 계산 결과 값이 0이면 종료값은 1 계산 결과 값이 0이 아니면 종료값은 0 else문은 생략할 수 있음 형식 if 조건 명령 then 명령 [ else 명령 ] fi 스크립트의 예 $ cat –n test_if 1 #!/bin/bash 2 # 3 # if test 4 # 5 6 echo “Input x :” 7 read x 8 echo “Inpt y :” 9 read y 10 11 if (( x= 90 )) 10 then 11 echo “Your score is gr..

쉘 스크립트(Shell Script) 연산자

연산자 연산자는 프로그램에서 자료를 다양하게 처리하는 방법을 제공 배시 쉘은 산술 연산자, 비교 연산자, 논리 연산자, 비트 연산자 등 일반 프로그래밍 언어에서 제공하는 것과 유사한 연산자를 제공 배시 쉘에서 수치 연산자 사용할 때는 let 내장 명령이나 (( ))를 사용 비트 시프트 연산자는 here 문서의 «와 구분하기 위해 반드시 (( )) 사이에 기술하여야 함 (( )) 안에서는 저장 연산자(=) 좌우에 공백이 있어도 괜찮지만, let을 쓸 때 공백이 포함되면 “ ”로 묶어야 함 위 표에서 위로 갈수록 우선순위가 높고, 아래로 갈수록 우선순위가 낮음 $ a=5 $ echo $a 5 $ let a = 20 -bash: let: =: syntax error: operand expected (error..

쉘 스크립트(Shell Script) 문법 - 사용자로부터 입력 받기

사용자로부터 입력 받기 : read read 명령은 쉘 내장 명령 터미널이나 파일로부터 입력을 받아 들임 $ cat –n test_read 1 #!/bin/bash 2 # 3 # read user input 4 # 5 6 read x 7 echo “x : $x” 8 9 read x y 10 echo “x : $x” 11 echo “y : $y” 12 13 read –p “Input : ” 14 echo “input : $REPLY” $ 실행 결과 $ chmod +x test_read $ ./test_read 100 x : 100 100 200 300 x : 100 y : 200 300 Input : 100 200 300 400 input : 100 200 300 400 $ here 문서를 통한 입력 받기..

유닉스/unix 쉘 스크립트(Shell Script) 변수 사용하기

쉘 스크립트(Shell Script) 변수 쉘 변수 : 지역 변수, 환경 변수 “변수명=값” 형태로 정의와 동시에 값을 저장 -, =, +, ?에 콜론을 붙이면 변수에 값이 정의되어 있거나 널 값으로 설정되어 있는 지 확인 콜론을 사용하지 않으면 널 값으로 정의된 변수도 설정된 것으로 간주 test는 값이 정의되어 있으므로 정의된 값을 출력 test1은 값이 정의되어 있지 않으므로 word 값을 출력 $ test=unix $ echo $test unix $ echo ${test:-word} unix $ echo ${test1=-word} word $ test는 값이 정의되어 있으므로 대체되지 않고 정의된 값을 출력 test1은 값이 정의되어 있지 않으므로 주어진 linux라는 값으로 대체됨 $ echo ..

반응형