Bash 스크립팅 팁

4686 단어

명명 규칙



이것은 권장 사항일 뿐 실제로 변수 유형을 설정하지 않으며 변수 범위를 쉽게 인식하는 모범 사례입니다.

유형
범위
협약

환경
글로벌
MY_VARIABLE

글로벌
글로벌
_MY_VARIABLE

현지의
기능
my_변수


환경 변수



하위 프로세스 및 백그라운드 프로세스를 포함하여 코드의 모든 위치에서 사용할 수 있습니다. 하위 프로세스 또는 백그라운드 프로세스에서 선언된 환경 변수는 주 프로세스의 범위를 벗어납니다.

하위 프로세스




#!/bin/usr/env bash
export MAIN_VAR="MAIN_VAR value"
echo "main-process BEFORE - MAIN_VAR        = $MAIN_VAR"

# sub-process
bash -c '
export                      SUB_PROCESS_VAR="SUB_PROCESS_VAR value"
echo "sub-process         - SUB_PROCESS_VAR = $SUB_PROCESS_VAR"
echo "sub-process  BEFORE - MAIN_VAR        = $MAIN_VAR"
export                      MAIN_VAR="MAIN_VAR changed value"
echo "sub-process  AFTER  - MAIN_VAR        = $MAIN_VAR"
'

echo "main-process AFTER  - MAIN_VAR        = $MAIN_VAR"
echo "main-process        - SUB_PROCESS_VAR = $SUB_PROCESS_VAR"


산출

main-process BEFORE - MAIN_VAR        = MAIN_VAR value
sub-process         - SUB_PROCESS_VAR = SUB_PROCESS_VAR value
sub-process  BEFORE - MAIN_VAR        = MAIN_VAR value
sub-process  AFTER  - MAIN_VAR        = MAIN_VAR changed value
main-process AFTER  - MAIN_VAR        = MAIN_VAR value
main-process        - SUB_PROCESS_VAR =


백그라운드 프로세스




#!/bin/usr/env bash
export MAIN_VAR="MAIN_VAR value"
echo "main-process BEFORE - MAIN_VAR       = $MAIN_VAR"

# background-process
export BG_PROCESS_VAR="BG_PROCESS_VAR value" && \
echo "bg-process          - BG_PROCESS_VAR = $BG_PROCESS_VAR" && \
echo "bg-process   BEFORE - MAIN_VAR       = $MAIN_VAR" && \
export MAIN_VAR="MAIN_VAR changed value" && \
echo "bg-process   AFTER  - MAIN_VAR       = $MAIN_VAR" \
& # set bg process

# Wait for bg processes (jobs) to complete
# Otherwise, the following lines won't be executed
wait

echo "main-process AFTER  - MAIN_VAR       = $MAIN_VAR"
echo "main-process        - BG_PROCESS_VAR = $BG_PROCESS_VAR"


산출

main-process BEFORE - MAIN_VAR       = MAIN_VAR value
bg-process          - BG_PROCESS_VAR = BG_PROCESS_VAR value
bg-process   BEFORE - MAIN_VAR       = MAIN_VAR value
bg-process   AFTER  - MAIN_VAR       = MAIN_VAR changed value
main-process AFTER  - MAIN_VAR       = MAIN_VAR value
main-process        - BG_PROCESS_VAR =

좋은 웹페이지 즐겨찾기