Shell 프로 그래 밍 함수 에 대해 주의해 야 할 몇 가지
셸 프로 그래 밍 에서 함수 에 대해 알 아야 할 몇 가지
1. 함수 내 에서 든 함수 외 에 든 $0 의 값 은 이 스 크 립 트 자체 입 니 다.
    [root@target ~]# cat test.sh
    #!/bin/bash
    
    echo $0
    
    function testFunc(){
        echo "In function:"
        echo "\$0=$0"
        echo "\$1=$1"
    }
    
    testFunc 'test test'
    [root@target ~]# bash test.sh
    test.sh
    In function:
    $0=test.sh
    $1=test test2. 함수 내 에서 정 의 된 변수 (전역 변 수 를 수정 해 야 하 는 것 이 아니라면) 는 가능 한 한 local 키 워드 를 사용 하여 국부 변수 로 정의 하여 전역 변수 값 을 덮어 쓰 지 않도록 합 니 다.
[root@target ~]# cat local.sh 
    #!/bin/bash
    
    TESTDATA="Hello world."
    TESTDATA1="Hello shell."
    
    function localFunc(){
        TESTDATA="Hello python."
        local TESTDATA1="Hello PHP."
        echo "In function:"
        echo "\$TESTDATA=$TESTDATA"
        echo "\$TESTDATA1=$TESTDATA1"
    }
    
    #call function
    localFunc
    
    echo "Out of function:"
    echo "\$TESTDATA=$TESTDATA"
    echo "\$TESTDATA1=$TESTDATA1"
    [root@target ~]# bash local.sh 
    In function:
    $TESTDATA=Hello python.
    $TESTDATA1=Hello PHP.
    Out of function:
    $TESTDATA=Hello python.
    $TESTDATA1=Hello shell.3. 함수 에서 return 키 워드 를 사용 하여 0 - 255 의 값 을 되 돌려 줍 니 다. 이 함수 가 상태 코드 (즉, 이 함수 가 성공 적 으로 실행 되 었 는 지 여부) 를 종료 하고 0 은 실행 성공 을 표시 하 며 0 이 아 닌 것 은 실 패 를 표시 합 니 다.일상적인 작업 에서 조건 에 따라 함 수 를 실행 성공 여 부 를 되 돌려 주 고 다른 프로그램 이 사용 할 수 있 도록 할 수 있다.함수 가 결과 값 을 되 돌려 주 고 변수 에 저장 하려 면 echo 문 구 를 사용 해 야 합 니 다.
    [root@target ~]# cat return.sh 
    #!/bin/bash
    
    function returnFunc(){
        echo "value"
        return 247
    }
    
    DATA=$(returnFunc)
    echo "\$?=$?"
    echo "\$DATA=$DATA"
    [root@target ~]# bash return.sh 
    $?=247
    $DATA=value4. 셸 스 크 립 트 가 여러 개 있 으 면 하나의 스 크 립 트 는 다른 스 크 립 트 의 함 수 를 호출 해 야 합 니 다. 다음 명령 을 실행 하고 지정 한 스 크 립 트 파일 을 불 러 옵 니 다.
. ./func.sh혹은
source ./func.sh위의 동작 은 다른 언어의 include 동작 과 유사 합 니 다.
 [root@target ~]# cat func.sh 
    #!/bin/bash
    
    function func1(){
        echo "This is func1"
    }
    
    function func2(){
        echo "This is func2"
    }
    
    function func3(){
        echo "This is func3"
    }
    [root@target ~]# cat call.sh 
    #!/bin/bash
    
    #source ./func.sh
    . ./func.sh
    
    func1
    func2
    func3
    [root@target ~]# bash call.sh
    This is func1
    This is func2
    This is func3이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
useEffect 안에서의 리턴??인스타 클론하다가 또 다시 배운 기능이다. useEffect안에서 리턴을 한다?? 찾아보니 componentWillUnmount와 같은 효과를 낸다는 것이다. useEffect안에서 return을 하면 정리의 개념으...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.