bash 쉘을 이용한 스크립트 만들기 #4

0. 개요 

앞서 변수 지정, 출륙, 반복, 분기 등에 대해 알아보았다 

이러반 부분만으로도 충분히 스크립트를 작성하고 

원하는기능을 구현할수있다 

하 지만 보다 쉽게 그리고 간편하게 하기위해서 

리다이렉션와 파이프 그리고 함수에 대해 알아보도록하자 


1. 리다이렉션

리다이렉션의 설명에 앞서 먼저 표준 입력과 표준 출력,에러에 대해

알아보자  기본적으로 표준  입력과 출력,에러 의 방향은 단반형으로 정해져있다 

표준 입력의경우 입력 장치로 부터  프로세서로 전달 되는 방향이며 
STDIN (Stanard Input)으로 표기된다 

표준 출력의 경우 프로세서에서 출력 장치로 전달되는 방향이며 
STDOUT (Standard Output)으로 표기된다 

표준 에러의 경우 펴준 출력의 한방식 이며 에로 또는 경고발생시 이용되는 형태이다
STDERR (Standard Error)으로 표기된다 


그 리고 리다이렉션이란 앞에서 설명한 표준 입력 , 출력 , 에려의 진행방향을 

파일로 또는 표준 출력을 표준에러로 와 같이 진행방향을 변경하는것을 의미한다 

몇 가지 예를 이용하여 알아보자  
   표준 출력을 파일로 
    #!/bin/bash
        ls > test.log

   표준에러를  표준출력으로 또는 파일로
    #!/bin/bash
    grep "http"  /home/ -R  2>1 

    #!/bin/bash
    grep "http"  /home/ -R  2> test.log

  표준 출력,에러 모두를  표준출력으로 또는 파일로
    #!/bin/bash
    grep "http"  /home/ -R  2>&1
    
    #!/bin/bash
    grep "http"  /home/ -R  &> test.log


2. 파이프
    파이프는 특정 프로그램의 출력을 입력으로 바꾸어 주는것을 말한다.

    #!/bin/bash
    ls -al | grep "*.log"
    
    ls -al 의 결과 출력을 파이프롤 통해서 grep "*.log"의 입력으로 바꾸어준다.


3. 함수 
    논리 적인 흐름과 재귀적인 표현등을 위해 함수를 사용가능하다 

    함수의 사용볍은 function function_name { ..bash script.. }  의 형태로 가능하며 

    function_name을 호출하는것으로 함수의 호출이 가능하다 

    그리고 함수에 파라메터를 전달하기 위해서는   함수 호출시 

    function_name argv1 argv2 argv3 ... 과 같은 형태로 함수뒤에 파래메타를 입력하고 

    function function_name { 
     echo $1
    echo $2
    echo $3
    ....
    }

    위와같이 넘겨진 파라메터를 함수 내에서 사용가능하다 

    #!/bin/bash
    
    function tests_1 {
        echo "linux.co.kr"
    }
    
    function test_2 {
        echo $1
    }

    test_1            # "linux.co.kr"이 출력된다 

    test_2 testargv1    # testargv1가 출력된다.



4. 마무리
     오늘 알아본부분에서 함수는 그렇다하더라도 

     리다이렉션과 파이프는  실제 서버관리에서도 광장히 만히 쓰이고 

     명령어를 조함 할때도 많이 쓰인다 

     이부분들에대해서는 반드시 알고 넘어가야 할 부분이다.


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1724

+ Recent posts