반응형

    정보

    • 업무명     : 쉘 스크립트 사용법 (변수를 사용하는 법)
    • 작성자     : 박진만
    • 작성일     : 2020-07-17
    • 설   명      :
    • 수정이력 :

     

     내용

    [특징]

    • 쉘 스크립트를 사용할 때의 유용한 팁 모음

     

    [활용 자료]

    • 없음

     

    [자료 처리 방안 및 활용 분석 기법]

    • 없음

     

    [사용법]

    • 작업 환경 구축
    • 소스 코드 작성 및 실행
    • 실행 결과 확인

     

    [사용 OS]

    • Linux (CentOS v7.0)
    • VMware Workstation Pro v15.5

     

    [사용 언어]

    • Bash Script

     

     소스 코드

    [일반적인 변수의 설정과 참조]

    [변수에 값을 설정]

    VAR1=123456
    VAR2=hogehoge
    
    VAR3=" a b c d e f g "
    • 다른 프로그래밍 언어와 같이 =를 사용한다.
    • 특히 쉘 스크립트는 C 언어 등과 같이 =를 사용하여 변수에 값을 설정한다. 그러나 C 언어와 달리 =앞뒤에 공백이 있어서는 안된다 .
    • 또한 변수 이름의 대소 문자를 구분하므로 변수 VAR 및 변수 var는 별개로 취급된다. 또한 쉘 변수에 '형태'는 존재하지 않기 때문에, 문자열이나 숫자를 구별없이 설정한다.
    • 포인트를 정리하면 다음과 같다 (특히 2번는 초보자가 빈번히 발생하므로 주의 필요). 
    1. = 사용
    2. 값을 설정할 때 변수 이름 앞에 $를 붙이지 않는다 ( $참조 전용)
    3. =의 앞뒤에 공백을 넣지 (전후에 공백이있을 경우 오류)
    4. 형식은 존재하지 않는다 (declare 명령이나 typeset 명령으로 비슷한 수 있지만 권장하지 않음)
    5. 변수 이름의 대소 문자는 구별된다 ( VAR와 var는 별개)

     

    [명령의 실행 결과를 변수로 설정]

    [표준 출력만을 변수로 설정]

    VAR=`command`

    → 화면에 표시되는 명령의 실행 결과 (표준 출력에 출력되는 문자열)을 모든 변수에 설정한다.

    • 계산 결과 문자열의 편집 결과 등 명령의 출력을 변수로 설정하려면 " ``"(역 따옴표)를 사용한다.
    • 그러나이 방법으로 변수에 설정되는 표준 출력에 출력 된 명령의 실행 결과만으로, 표준 에러 출력에 출력 된 명령의 실행 결과는 변수에 설정되지 .
    • 결과적으로,
      • 명령이 성공적으로 실행 된 경우 결과가 변수로 설정됩니다 (화면에 아무것도 출력되지 않음)
      • 오류가 발생한 경우 화면에 오류가 출력된다.
    $ VAR=`date`
    $ echo $VAR
    2020년 7월 17일 금요일 22:00:23 KST
    $ VAR=`ls hogehoge`
    ls: hogehoge: 그런 파일이나 디렉토리가 없습니다.

     

    [표준 오류 출력만을 변수로 설정]

    • 명령의 표준 오류 출력만을 변수로 설정하려면 다음과 같이 한다.
    VAR=`command 2>&1 >/dev/null`

    → 명령의 오류 메시지만을 변수로 설정

    • 미리 >/dev/null원래 표준 출력을 버리고하면서 2>&1로 표준 오류 출력을 표준 출력으로 리디렉션하여 표준 오류 출력만을 변수로 설정하는 것이 가능하게된다.
    $ ls hoge >/dev/null
    ls : hoge : 그런 파일이나 디렉토리가 없습니다
    # ↑ 표준 에러 출력에 에러 메시지가 출력됨.
    
    $ VAR=`ls hoge 2>&1 >/dev/null`
    $ echo $VAR
    ls : hoge : 그런 파일이나 디렉토리가 없습니다
    # ↑ 표준 오류 출력 오류 메시지가 변수로 설정되어 있다.
    
    
    $ touch hoge
    $ VAR=`ls hoge 2>&1 >/dev/null`
    $ echo $VAR
    
    # ↑ 원래 표준 출력은 버리고 있기 때문에 오류가 발생하지 않은 경우 변수는 비운다

     

    [표준 출력 · 표준 오류 출력을 모두 변수로 설정]

    • 명령의 실행 결과를 오류를 포함하여 변수로 설정하려면 다음과 같이한다.
    VAR=`command 2>&1`
    

    → 표준 출력 이외에 표준 에러 출력에 출력되는 명령의 실행 결과를 모든 변수에 설정한다.

    • 리디렉션을 지정하면 오류가 발생하는 경우도 명령의 실행 결과를 변수에 얻을 수있게된다. 이 지정 방법이라고 명령의 실행 결과는 오류 메시지를 포함하여 화면에 전혀 출력되지 않게된다.
    $ VAR=`ls hogehoge`
    ls : hogehoge : 그런 파일이나 디렉토리가 없습니다
    $ echo $VAR
    
    # ↑ 명령의 실행 결과를 표준 에러 출력에 출력되어 있기 때문에 변수에 아무것도 설정되어 있지 않음.
    
    $ VAR=`ls hogehoge 2>&1`
    $ echo $VAR
    ls : hogehoge : 그런 파일이나 디렉토리가 없습니다
    # ↑ 표준 오류 출력을 표준 출력으로 리디렉션하면 표준 오류 출력을 변수로 설정된다.

     

    [백 쿼트의 대체 기능]

    • 백 쿼트와 같은 기능을 $(command)로 대체 가능.
    VAR=$(command)
    

    → 실행 결과는 역 따옴표를 사용했을 경우와 같게되지만, 더 높은 기능.

    $ echo $VAR
    2020년 7월 17일 금요일 03:01:30 KST
    #↑# ↑ 백 쿼트와 마찬가지로 표준 출력에 출력 변수로 설정되어있다.
    
    $ VAR2=$(ls hogehoge)
    ls : hogehoge : 그런 파일이나 디렉토리가 없습니다
    $ echo $VAR2
    
    # ↑ 표준 에러 출력에 출력 변수로 설정되지 않는다.
    
    $ VAR2=$(ls hogehoge 2>&1)
    $ echo $VAR2
    ls : hogehoge : 그런 파일이나 디렉토리가 없습니다
    # ↑ 백 쿼트의 경우와 마찬가지로, 리디렉션을 사용하여 표준 에러 출력에 출력도 변수로 설정할 수있다.
    • 이러한 명령의 실행 결과, 즉 명령이 표준 출력에 출력 할 문자열을 변수에 저장하려면 ``(역 따옴표) 또는 $()를 사용한다.
    • 또한 $()더 높은 기능이므로 다음과 같이 중첩도 가능하다.
    $ var=$(expr $(expr $(date '+%Y') + $(date '+%m')) + $(date '+%d'))
    $ echo $var
    2041

    (이 계산에 특히 깊은 의미는 없다. 단지 중첩의 사용 예이다.)

     

    [변수의 값을 참조]

    • 변수 VAR1 값을 표시하기
    echo $VAR1
    
    • 변수 VAR 값과 "1"을 표시
    echo ${VAR}1
    
    • 변수 VAR2 값과 변수 VAR3 값을 표시
    echo ${VAR2}${VAR3}
    
    • 변수의 값을 다른 변수로 설정
    VAR="$VAR1"
    
    • 변수 VAR 변수 VAR1 값을 설정한다.
    • 변수 VAR 변수 VAR2와 변수 VAR3 값을 결합한 값을 설정
    VAR="${VAR2}${VAR3}"
    

    → 변수의 값을 참조하려면 변수 이름 앞에 $를 붙인다.

    • 변수의 값을 참조하려면 변수 명 앞에 $를 붙인다. 참조하는 변수를 명확하게하는 경우 {}(중괄호)에서 변수 이름을 포위한다.
    • 예를 들어 아래의 " $VAR1"와 " ${VAR}1"는 다른 변수를 참조한다. 전자는 변수 VAR1 후자는 변수 VAR을 참조된다 (변수 VAR 및 변수 VAR1 모두가 정의되어있는 경우).
    $ VAR=hoge
    $ VAR1=fuga
    $ echo $VAR1
    fuga
    $ echo ${VAR}1
    hoge1
    • 또한 변수 {}로 묶어 쉘 스크립트의 가독성을 높이는 데에도 효과적이다. " ${foo}${bar}'처럼 여러 변수를 동시에 참조하는 경우 등은 {}사용하는 것이 개별 변수를 쉽게 구별된다.
    $ VAR1=123456
    $ VAR2=abcdefg
    $ VAR3=" a b c d e f g "
    $
    $ echo $VAR1
    123456
    # ↑ 변수 VAR1 값을 표시한다.
    
    $ echo ${VAR}1
    1
    # ↑ 변수 VAR 값과 "1"을 표시한다. 위의 결과와 비교하면 "`$ VAR1`"며 "`$ {VAR} 1`"는 별개임을 알 수있다. 또한 변수 VAR 값이 설정되어 있지 않기 때문에 "" ""(공백)로 대체된다.
    $ echo ${VAR2}${VAR3}
    abcdefg a b c d e f g
    # ↑ 변수 VAR2와 변수 VAR3 값이 연결되어 표시된다. "echo $ VAR2 $ VAR3"라고 써도 결과는 동일하지만, 쉘 스크립트를 작성할 경우 가독성을 높이기 위해도 위와 같이 "{}"로 묶을 것이 바람직하다.
    

     

    [변수의 특수 참조 방법]

    → 변수의 상태에 따라 행동을 바꾸는 특수 참조 방법.

    • 변수에 값이 설정되어 있지 않은 경우에 일시적으로 값을주고 볼 등의 특수 참조가 가능하다. 하지만 이들을 함부로 사용하면 쉘 스크립트의 가독성이 저하되고, 뜻밖의 버그를 낳을 가능성이 있기 때문에 너무 많이는하지 않는 편이 좋을 것이다.

     

    [특수 참조 방법 일람표]

    구분 설명
    ${VAR=aaa} 변수 VAR을 사용하지 않는 경우에만 변수 VAR에 문자열 "aaa"를 대입 문자열 "aaa"를 반환한다.
    변수 VAR이 NULL 값을 포함 이미 사용 된 경우, 변수 VAR에 대입하지 않고, 변수 VAR 값을 돌려 준다.
    ${VAR:=aaa} 변수 VAR 미사용 혹은 NULL의 경우에만 변수 VAR에 문자열 "aaa"를 대입 문자열 "aaa"를 반환한다.
    변수 VAR이 NULL 값의 경우를 제외하고 이미 사용 된 경우 변수 VAR에 대입하지 않고, 변수 VAR 값을 돌려 준다.
    ${VAR-aaa} 변수 VAR을 사용하지 않는 경우에만 문자열 "aaa"를 반환한다. 변수 VAR이 NULL 값을 포함 이미 사용 된 경우, 변수 VAR 값을 돌려 준다.
    또한 변수 VAR이 사용 된 미사용에 관계없이 변수 VAR에 대입은 행해지지 않는다 .
    ${VAR:-aaa} 변수 VAR 미사용 혹은 NULL 값의 경우에만 문자열 "aaa"를 반환한다. 변수 VAR가 NULL이 아닌 값으로 이미 사용되고있는 경우, 변수 VAR 값을 돌려 준다.
    또한 변수 VAR이 사용 된 미사용에 관계없이 변수 VAR에 대입은 행해지지 않는다 .
    ${VAR+aaa} 변수 VAR이 NULL 값도 포함 이미 사용 된 경우에만 문자열 "aaa"를 반환한다. 변수 VAR을 사용하지 않는 경우 NULL 값을 반환한다.
    또한 변수 VAR이 사용 된 미사용에 관계없이 변수 VAR에 대입은 행해지지 않는다 .
    ${VAR:+aaa} 변수 VAR이 NULL 값 이외에서 이미 사용되고있는 경우에만 문자열 "aaa"를 반환한다. 변수 VAR이 NULL 값 또는 사용하지 않은 경우 NULL 값을 반환한다.
    또한 변수 VAR이 사용 된 미사용에 관계없이 변수 VAR에 대입은 행해지지 않는다 .

     

    [NULL 값]

    • 여기서 NULL 값은 VAR=""및 버튼 VAR=처럼 빈 값 (빈) 상태를 의미한다.

    [특수 참조 방법의 실행 결과 요약]

     

    [변수의 값을 변수 이름으로 값을 참조]

    eval echo '$'$VAR
    

     

    → eval 명령을 사용하여 변수를 이중으로 전개한다.

    • eval 명령에서 변수 VAR을 확장하고 더 인용 해 놓았다 $을 이용하여 쉘 변수를 다시 전개한다.
    • 이에 따라 변수 VAR에 설정되어 있던 값을 변수로 참조 할 수있게된다. 이를 위해 첫째의 $1 차 변수 확장시 쉘 해석되지 않도록 쿼트 할 필요가있다.
    $ FOO="BAR"
    $ BAR="SUCCESS"
    $ eval echo '$'$FOO
    SUCCESS
    # ↑ 변수 FOO로 설정되어있는 값을 변수 이름으로 참조하고있다.

     

    • eval 명령은 먼저 변수 FOO가 확장되고 명령 줄 echo $BAR이된다. 그 다음, echo 명령을 실행 변수 BAR가 전개된다. 따라서 결과적으로 변수 FOO로 설정되어 변수 이름의 변수를 참조하게된다. 예를 들어 변수 FOO에 "foo"가 설정되어있는 경우는 foo 변수의 값을 참조하게 된다.

     

    [변수 제거]

    unset VAR
    

    → unset 명령으로 변수를 제거한다.

    • 변수를 제거하려면 unset 명령으로 삭제할 변수 이름을 지정하고 실행한다. 변수 이름을 지정하는 경우에는 $붙이지 않고 변수 이름만을 지정한다.
    • unset 명령이 실행되면 대상이 된 변수는 값이 삭제 될뿐만 아니라 사용하지 않는 상태로 돌아온다.

     

    [변수를 읽기 전용으로 설정]

    readonly VAR="hogehoge"
    

    → 변수 설정시 readonly를 지정하여 읽기 전용으로한다.

    • 변수 설정시 readonly지정하는 것으로, 그 변수는 이후 읽기 전용이며 값을 변경하려고 하면 에러가 출력된다. 즉 readonly함으로써 변수를 상수 화하는 것이 가능하게된다.

     

    [특별한 변수와 참조 요약]

    구분 설명
    $? 이전에 실행 된 명령의 종료 상태가 설정되는 변수
    $! 백그라운드에서 실행 된 명령의 프로세스 ID가 설정되는 변수
    $- set 명령으로 설정된 플래그 또는 쉘을 시작할 때 지정된 플래그 목록을 설정하는 변수
    $$ 명령 자신의 PID (프로세스 ID)가 설정되는 변수
    $# 실행시 지정된 인수의 개수 가 설정되는 변수
    $@ $* 쉘 스크립트 실행시 또는 set 명령 실행시 지정된 모든 매개 변수가 설정되는 변수
    $LINENO 이 변수를 사용하는 행의 행 번호가 설정되는 변수
    ${PIPESTATUS[@]} 파이프로 연결 한 각 명령의 종료 상태가 설정되는 변수 (배열)
    $1, $2, ..., ${10}... set 명령 또는 쉘 스크립트의 N 개의 눈 인수가 설정되는 변수 (위치 매개 변수라고도 함)

     

    [각 특수 변수에 대한 자세한 설명]

    • 이전에 실행 된 명령의 종료 상태가 설정되는 변수
    $?
    

    명령에 성공할 경우 "0"충돌의 경우는 「0 이외의 수」가 출력된다.

    • 쉘 스크립트에서는 exit 명령에 준 인자가 그 쉘 스크립트의 종료 상태가된다. 예를 들어 exit 2쓴다면 그 쉘 스크립트의 종료 상태는 "2"
    • 함수 return의 경우도 마찬가지로 지정된 인수가 그 함수의 종료 상태가된다.

     

    • 백그라운드에서 실행 된 명령의 프로세스 ID가 설정되는 변수
    $!

     

    • sleep 100 &같이 &함께 실행하면 명령은 백그라운드에서 실행된다. 이 경우 변수 $!는 sleep 명령의 PID (프로세스 ID)가 설정되어있다.

     

    • set 명령으로 설정된 플래그 또는 쉘을 시작할 때 지정된 플래그 목록을 설정하는 변수
    $-
    • 변수 $-의 값이 "abc"이면 플래그는 "-abc"라는 것이다.

     

    • 명령 자신의 PID (프로세스 ID)가 설정되는 변수
    $$
    • 쉘 스크립트에서 echo $$와 같이 기술하면 쉘 스크립트가 실행되었을 때의 PID 취득 할 수있는 PID (은 OS에서 고유하게 할당).
    • 이 변수를 사용하는 기술은 쉘 스크립트에서 생성하는 파일 확장명에 변수 $$를 지정하는 것이있다 (eg tempfile.$$). 변수 $$를 확장 지정하여 쉘 스크립트 실행마다 만들 파일 이름을 바꿀 수 있기 때문에 동일한 쉘 스크립트를 동시 실행 한 경우, 동시 실행 된 각 스크립트가 동시에 동일한 파일에 출력하고 버리는 것을 방지 할 수 있다.

     

    • 실행시 지정된 인수의 수가 설정되는 변수
    $#
    

    → 쉘 스크립트 실행시 또는 set 명령 실행시 매개 변수의 수가 설정되는 변수.

    • 쉘 스크립트 실행시 또는 set 명령 실행시 지정된 매개 변수 수는 변수 $#에 자동으로 설정된다. 지정된 인수의 수를 확인하고 싶은 경우에는이 변수를 사용한다.
    • 예를 들어
    •  $ ./command.sh AAA BBB CCC같은 실행 된 경우 쉘 스크립트 command.sh에서 변수 $#를 참조하면 그 값은 "3"이다.

     

    • 쉘 스크립트 실행시 또는 set 명령 실행시 지정된 모든 매개 변수가 설정되는 변수
    $@
    $*

    → 쉘 스크립트 또는 set 명령의 모든 인수가 설정되는 변수.

    • 쉘 스크립트 실행시 또는 set 명령 실행시 지정된 모든 매개 변수는 변수 $@와 변수 $*자동으로 설정된다.
    • 모든 매개 변수의 목록을 얻을 경우 두 변수를 참조해도 결과는 동일하지만, 큰 따옴표 ( "")로 묶인 경우 동작이 다르다.
    • 자세한 내용은 다음과 같다.
    • 변수 $@를 "" ""로 묶인 경우 저장되어있는 개개의 값을 각각 "" ""로 묶인 상태로 전개된다.

    예를 들어, 저장되는 값이

    "aaa" "bbb" "ccc"(※ set "aaa" "bbb" "ccc") 일 때 

    그렇다면 " "$@""는

    "aaa" "bbb" "ccc"

    처럼 전개된다.

    • 변수 $*는 $@달리 "" ""로 묶인 경우 저장되어있는 모든 값을 하나의 "" ""로 묶인 상태로 전개된다.

    예를 들어, 저장되는 값이

    "aaa" "bbb" "ccc"(※ set "aaa" "bbb" "ccc")

    그렇다면 " "$*""는

    "aaa bbb ccc"

    처럼 전개된다.

    • 예를 들어, 다음과 같은 쉘 스크립트 (all_parameters.sh)를 실행한다면.
    #!/bin/bash
    
    echo '1."$@"GO---------------------------------------'
    for i in "$@"
    do
      echo $i
    done
    
    echo ""
    
    echo '2."$*"GO---------------------------------------'
    for i in "$*"
    do
      echo $i
    done

     

    • 이 쉘 스크립트 all_parameters.sh의 실행 결과는 다음과 같게 된다.
    $ ./all_parameters.sh aaa bbb ccc ddd eee fff ggg
    1."$@" GO ---------------------------------------
    aaa
    bbb
    ccc
    ddd
    eee
    fff
    ggg
    
    2."$*" GO ---------------------------------------
    aaa bbb ccc ddd eee fff ggg
    
    $
    • 위의 실행 결과대로 저장되는 값은 동일하지만 동작이 전혀 다른것을 알 수 있다.
    • " "$@""에 전개 한 값은 각 값을 개별적으로 변수 i에 저장되기 때문에 각각 한 행씩 총 7 라인 출력된다. 그와는 달리 " "$*""에서 전개 된 값이고, 모든 값이 한 번에 변수 i에 저장되기 때문에 한 줄에 모든 값이 출력된다.
    • 즉, 변수 배포 할 때 for 문은 다음과 같은 상태에 있다.
    # "$@"
    for i in "aaa" "bbb" "ccc" "ddd" "eee" "fff" "ggg"
    # "$*"
    for i in "aaa bbb ccc ddd eee fff ggg"
    
    • 따라서 쉘 스크립트에서 for 문을 사용하여 각 매개 변수에 대해 별도의 작업을 수행하려면 " "$*""대신 " "$@""를 사용한다 .

     

    • 변수를 사용하는 행의 행 번호가 설정되는 변수
    $LINENO
    • 디버깅에 유용한 행 번호가 설정되어있는 변수. 예를 들어, 쉘 스크립트에서 5 번째 줄에서 이 변수를 사용했다고 하면 거기에 변수 LINENO의 값은 "5"가된다.

     

    • 파이프로 연결 한 각 명령의 종료 상태가 설정되는 변수 (배열)
    ${PIPESTATUS[@]}
    • 파이프 ( |)에 의해 연결된 각 명령의 종료 상태가 설정 설정되어있는 변수 (배열).
    • 변수 $?는 파이프의 맨 마지막에있는 명령의 종료 상태 밖에 볼 수 없지만,이 변수를 사용하여 파이프의 앞이나 중간에있는 명령의 종료 상태를 참조 할 수있다 (불행히도 bash 만 ksh에서는 사용할 수 없다).

     

    • 위치 매개 변수
    $0
    $1
    $2
    $3
    ・・・

    → 쉘 스크립트 또는 set 명령의 각 인수가 개별적으로 설정되는 변수.

    • $0, $1, $n는 위치 매개 변수라는 특수 변수이다.
    • 쉘 스크립트 실행시 또는 set 명령 실행시 매개 변수에 지정된 값은 위치 매개 변수라는 특별한 변수에 자동으로 설정된다.
    • 이러한 위치 매개 변수 " $1="1234""처럼 스스로 임의의 값을 설정할 수 없다. 자신이 원하는 값을 설정하려면 set 명령을 사용해야 싶어한다.

     

    [위치 매개 변수의 예]

    $ /usr/local/bin/command.sh -a aaa -b bbb -c ccc
    
    • 위와 같이 실행하면 쉘 스크립트 command.sh 내에서 변수 $1를 참조하여 가장 선두에 지정된 매개 변수 "-a"를 얻을 수있다.

     

    [위치 매개 변수 요약]

    • 변수 이름이 자동으로 설정되는 값
    구분 설명
    $0 실행 된 쉘 스크립트 이름이 설정된다.
    $ ./test.sh실행하는 경우 $0는 「./test.sh」가된다.

    $ /usr/local/bin/test.sh 같이 전체 경로 지정으로 실행 된 경우는 " /usr/local/bin/test.sh"와 같이 전체 경로로 설정된다.
    $1 1 번째의 인수가 설정된다.
    $2 2 번째의 인수가 설정된다.
    $3 세 번째 인수가 설정된다.
    $4 ~ $9 4 ~ 9 번째의 인수가 설정된다.
    ${10} 10 번째의 인수가 설정된다. 내용은 " $10"대신 " ${10}"같이 " {}"로 묶어야한다. 전자의 경우는 먼저 " $1"이 해석되기 때문에 원하는대로 작동되지 않는다.
    ${11} ~ ${100} 11 번째에서 10

     

    [환경 변수 요약]

    • 환경 변수는 시스템 전체의 동작에 대한 값이 설정되어있는 (혹은 사용자가 값을 설정) 변수. 환경 변수로 설정되어있는 변수 이름과 값은 env 명령으로 확인할 수 있다.
    구분 설명
    $PS1 프롬프트에 사용되는 문자열이 설정되어있는 환경 변수.
    이 변수의 값을 변경하여 프롬프트의 표시 형식을 변경할 수있다.
    $PS2 여러 행에 걸친 경우 프롬프트에 사용되는 문자열이 설정되어있는 환경 변수.
    환경 변수 PS1과 마찬가지로 값을 변경하여 프롬프트의 표시 형식을 변경할 수있다.
    $PATH 명령이 저장되어있는 디렉토리의 경로가 설정되어있는 환경 변수.
    경로는 ":"(콜론)으로 구분하여 여러 설정 가능.
    명령 실행시에이 환경 변수 PATH에 설정되어있는 디렉토리에서 명령의 본체가 자동으로 검색된다.
    즉, 환경 변수 PATH에 "/ bin"을 설정하여 명령을 "/ bin / ls"와 같이 전체 경로를 지정하지 않아도 "ls"와 같이 명령 이름 만 지정에서 실행이 가능 된다.
    $TZ 시간대가 설정되어있는 환경 변수.
    일반적으로 변경하는 일은 없다. 그러나 오래된 UNIX 환경에서 어제 날짜를 원한다면 등에 일시적으로 변경 가능하다.
    $PWD 현재 디렉토리 경로가 설정되어있는 환경 변수.
    " PS1='[${PWD}]$ '"같이 환경 변수 PS1로 설정하면 프롬프트에 현재 디렉토리가 표시된다.
    $IFS 구분자 구분 기호로 사용되는 값이 설정되어있는 환경 변수.
    IFS는 "Internal Field Separator"의 약어. 기본적으로 탭, 공백, 줄 바꿈이 설정되어있다.
    for 문 값 목록 구분과 read 명령으로로드 값의 구분 등에 사용된다.

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기