새벽감성으로 공부중이다 ㅎ..


쉘 스크립트를 공부하기에 앞서서 쉘스크립트가 작동할 Bash에 대하여 먼저 알아볼 것이다.


# Shell 메타문자


쉘은 아래와 같이 일부 특수문자를 특별하게 인식하여 처리한다.


* : 임의의 문자열 ( 한문자 이상 ), ? : 임의의 한문자, [] : 대괄호안 포함된 문자 중 하나

이 특수문자들은 자신이 파일명을 일부만 알고있거나 파일명이 너무 길어 귀찮을때 유용하다.

    @ []안에 문자를 쓸때 a~z까지를 다 쓸필요없이 a-z와 같이 축약가능하다.

    @ * []?와 같이 혼합사용이 가능


~ : Home, - : Last Dir

이 특수문자들은 작업공간의 이동시 유용하다.

    @ cd - 시 이전 디렉터리 명을 출력하고 이동한다.


; : 한번에 왼쪽부터 차례로 여러개의 명령을 수행


| : 왼쪽 명령의 결과를 오른쪽 명령의 입력으로 전달


` ` : 쉘 명령 수행

이 특수문자는 echo와 유용하게 쓰인다.

예시 ) echo ` expr 4 + 5 ` : expr 명령을 수행후 결과를 출력한다.


' ' : 모든 쉘의 특수문자 무시, " " : $, `, \를 제외한 모든 쉘 문자 무시

이 특수문자들은 쉘이 특수문자를 그 자체로 쓰도록 하는 역할을 한다.

쓰이는 곳은 역시 문자출력이다.


예시 ) echo ' ** Hello ** '

만약 ' ' 없이 echo ** Hello **를 친다면 

당신은 해당 작업공간내에 모든 파일 및 폴더를 구경하게 될 것이다. ( 궁금하면 ㄱㄱ )


예시2 ) echo " ** `expr 4 + 5` ** "


\ : 특수문자를 이스케이프 시퀸스로 작동 ( 즉 ', " 없이도 특수문자로 구별되게 가능 )

예시 ) echo \*\*


>, >>, <, 2> : 입출력 장치의 변경

키보드로 표준 입력 ( stdin )을 받으면 명령이 실행된 후 

모니터에 표준 출력 ( stdout ) 혹은 표준 오류 ( stderr )를 출력하는게 일반적이다.


    < : 키보드 입력 대신 파일의 내용을 입력 ( 입력 리다이렉션 )


    > ( or 1> ), >> : 모니터대신 파일에 내용을 출력

        @ 둘의 차이점

            > : 기존파일의 내용을 없애고 작성

            >> : 기존파일이 있을시 append ( 끝에 내용 추가 )방식으로 작성


    2> : 에러 메시지를 모니터 대신 파일에 입력한다.

        @ 2>&1 : stdout과 stderr를 한 파일에 들어놓음


# Shell 변수 설정


1 ) 쉘 변수와 환경 변수


    쉘 변수 : 현재의 쉘에서만 사용 가능한 변수


    @ 변수=값 ( 공백까지 일종의 문자로 인식하므로 띄어쓰기는 하지말자 )

    @ 변수에 저장될 문자열이 빈 칸을 포함한다면 " "으로 감싸서 대입한다.

    @ 변수에 초기 값을 대입하는 시점에 변수가 생성된다.

    @ 모든 변수의 타입은 문자열로 간주된다.

    @ 확인 명령 : set

    @ 쉘 변수는 관례상 대문자를 사용

    @ 변수는 대소문자를 구분한다. ( 즉 A와 a는 다른 변수 취급 )


    환경 변수 : 모든 쉘에서 사용 가능한 변수

    @ 확인 명령 : env

    @ export 변수=값 , 변수=값 + export 변수


2 ) 변수 값 확인


    전체적으로 확인시 set, env를 사용

    변수명을 이용하여 확인시 $을 이용


    예시 ) echo $day


3 ) 변수 정의 해제

    

    unset 변수명


# Shell의 여러가지 기능들


1 ) alias : 별칭 만들기


@ alias 별칭=명령 : 설정

@ unalias 별칭 : 해제

@ alias : 설정값 확인


2 ) fc : 사용자가 입력한 명령을 기록하여, 재사용 하도록 함


@ 히스토리 목록에서 선택하는 방식

@ 옵션

    -s ) 최근 명령을 재실행

    -l ) 이전 명령 목록 확인

    @ 확인시 번호와 함께 입력한 명령이 출력된다.

 @ 명령 재실행

    !! ) 마지막 명령 실행

    !n ) 번호번째 명령 실행 

    !-n ) 현재 명령에서 뒤에서 n번째 명령

    !문자열 ) 주어진 문자열로 시작하는 명령중 제일 최근 명령


요기까지 정리하였다

쉘 스크립트가 더 이해잘되기위해 기초를 다졌으니 이제 쉘 스크립트를 만나보자!

 

   










'Linux > Shell_Script' 카테고리의 다른 글

RANDOM  (0) 2017.12.14
case  (0) 2017.12.14
for과 while  (0) 2017.12.14
Shell Script 뭉텅이  (0) 2017.12.14