티스토리 뷰

728x90
반응형

리눅스 쉘 스크립트 문을 만들 때 자주 사용되는 'read' 문 사용법에 대해 알아보자

 

목차
- read 명령어 사용 예
- read -옵션

     


    read 명령어

    스크립트 문 실행을 통해서 입력을 받아 처리 할때 주로 사용된다.

    $ read -p " 당신의 나이를 입력 하세요  : " age

    명령어 사용법 은 위와 같다.
    설명하자면 read 명령어로 " 당신의 나이를 입력하세요 : " 문장을 우선 출력하고 입력받은 값을 ' age ' 변수에 넣게 된다.

    echo $age 로 입력 값을 확인

    read 문 끝에 사용할 변수를 넣으면 입력한 값을 해당 변수에 넣게 된다.
    echo $변수를 통해 해당 값을 출력할 수 있다.
    변수를 선언 안 하면 어떻게 출력 하나? 궁금하죠? 이렇게 합니다.

    echo $REPLY 로 출력

    쉘의 예약 변수인 $REPLY로 확인 가능하다.



    read -옵션

    read 도 여려 옵션이 있지만 많이 사용되는 옵션 몇 가지만 알아보자

     -r 백슬래시는 이스케이프 문자 역할을 하지 않습니다.  백슬래시는 라인의 일부로 간주됩니다.
      특히 백슬래시-새 라인 쌍은 사용할 수 없습니다.     
     -s  자동모도 - 단말기에서 입력이 들어오는 경우 문자는 반향 되지 않는다.
     -t  시간 초과- 전체 입력 라인이 시간 초과 초 이내에 읽지 않으면 읽기가 시간 초과되고 반환되지 않습니다.
    시간 초과는 분수가 있는 십진수일 수
     -a 단어는 배열 변수 이름의 순차적 인덱스에 할당되며 0부터 시작합니다.
    새 값이 할당되기 전에 이름이 설정 해제됩니다.  다른 이름  인수는 무시됩니다.
     -n  전체 입력 줄을 기다리지 않고 chars 문자를 읽은 후에 반환을 읽지만 chars 문자보다 적은 문자를 읽을 경우 구분 기호를 사용합니다.
     -p  프롬프트 - 입력을 읽기 전에 후속 줄 없이 표준 오류에 대한 프롬프트를 표시합니다.  
     프롬프트는 입력이 에서 오는 경우에만 표시됩니다.

     

    read -옵션 ( -t , -n ) 사용 예

    $ read -t30 -n1 " 1 + 2 = "

    -t 옵션으로 5초 간 입력을 기다리고 -n1으로 한 글자만 입력받는다
    위 이미지는 -t5 옵션으로 5초가 지나도 입력하지 않아 입력 대기가 끝나 프로프트 게 떴다. 

    1+2 아는 사람?


     

    read 명령어 변수 배열 사용 

    read 명령어는 스크립트에 사용되는 명령 어인 만큼 배열 입력도 받을 수 있다.
    배열의 구분은 띄어쓰기(공백) 으로 한다.

    #!/bin/bash
    
    echo -n " 당신 장점 3개를 입력하세요 :
    read -a point
    echo "${point[1]} ${[point[2]} ${point[3]} 이나 있군요"

    배열의 단위는 띄어쓰기(space bar) 를 통해 구별 된다.

    아.... 돈..... 이 없다.......
    갑자기 포스팅할 맛이 뚝 떨어졌다.... 오늘 은 여기까지...


    read 명령어 정리

    C언어에 scaf 명령과 같이 문자를 입력받아 사용하는 명령어다...
    돈이 없다...... 늙기까지 했어.....

    728x90
    반응형
    댓글