logo

Bash 스크립팅 – 기능

Bash 스크립트는 일반 텍스트 파일입니다. 이 파일에는 단계별 실행을 위한 다양한 명령이 포함되어 있습니다. 이러한 명령은 명령줄에 직접 작성할 수 있지만 재사용 가능성 측면에서 특정 작업에 대해 상호 관련된 모든 명령을 단일 파일에 저장하는 것이 유용합니다. 요구 사항에 따라 명령 집합을 한 번 이상 실행하기 위해 해당 파일을 사용할 수 있습니다.

이 기사에서는 Bash 스크립팅 내에서 기능을 사용하는 방법에 대해 논의할 것입니다.



프로그래밍에서 함수는 일부 작업을 수행하는 코드 블록이며 작업 수행을 위해 여러 번 호출될 수 있습니다. 프로그램에 모듈성을 제공하고 코드 길이를 줄입니다. Bash 스크립팅에서 함수를 사용하는 가장 간단한 예는 다음과 같습니다.

예시 스크립트:

#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction>

산출:



Hello World from techcodeview.com>

위의 예는 호출될 때 무언가를 인쇄하는 함수를 보여줍니다. 따라서 Bash 스크립트 내에서 함수를 작성하기 위한 기본 구문은 다음과 같습니다.

통사론:

# for defining function_name(){ commands ..... } function_name # for calling>

이 외에도 인수를 전달하고 값을 반환하는 함수를 가질 수도 있습니다. 이제 이에 대해 논의해 보겠습니다.



인수를 전달하는 함수

함수에 인수나 매개변수를 추가하고 이를 사용하여 함수에 데이터를 전달하면 함수가 해당 데이터로 작동할 수 있습니다. Bash 스크립팅에서는 인수 전달이 포함된 함수를 작성하기 위해 다음 구문을 사용할 수 있습니다.

인수를 전달하는 함수 구문:

#for defining function_name(){ ..... parameter_1 =  parameter_2 =  . . . parameter_n = $n .... commands ..... } #for calling function_name p1 p2 ....pn>

함수를 호출하는 동안 인수를 직접 전달할 수 있으며 다음을 사용하여 인수에 액세스할 수 있습니다. , … .. $n 함수 내에서. 좀 더 명확한 이해를 위해 예를 들어보겠습니다.

인수를 전달하는 함수의 예:

pyspark
#!/bin/bash add_two_num(){ local sum=$((+)) echo sum of  and  is $sum } add_two_num 2 3>

인수를 전달하는 함수의 출력:

sum of 2 and 3 is 5>

위는 두 개의 숫자를 추가하는 스크립트입니다. 여기서는 2와 3을 인수로 제공했습니다. 함수에서 과 를 사용하여 액세스하고 합계를 계산하여 터미널에 인쇄했습니다. 아래는 스크립트를 실행한 후의 터미널 셸 묘사입니다.

인수를 전달하는 함수 출력

반환 값이 있는 함수

반환 값은 실행이 완료된 후 함수에 의해 생성되어 호출 메서드에 반환됩니다. 반환 값은 생성된 결과 또는 하나의 함수가 성공적으로 실행되었는지 여부에 대한 일부 상태 코드를 공유하는 데 사용될 수 있습니다. Bash 스크립팅에서 반환 값은 $? 변하기 쉬운.

동일한 예가 아래에 나와 있습니다.

반환 값이 있는 함수의 예:

#!/bin/bash myfun(){ return 7 } myfun echo The return value is $?>

반환 값이 있는 함수 출력:

The return value is 7>

다음은 스크립트를 실행한 후의 터미널 셸 출력입니다.

반환 값이 있는 함수 출력

이제 두 숫자 스크립트의 이전 합계를 수정해 보겠습니다.

수정된 코드:

#!/bin/bash myfun(){ return $((+)) } add_two_num 2 3 echo The sum is $?>

수정된 코드 출력:

The sum is 5>

이제 위의 코드는 Bash 스크립트 함수에서 매개 변수와 반환 값을 모두 사용하는 예입니다.

아래는 스크립트를 실행한 후의 터미널 셸 묘사입니다.

수정된 코드 출력

가변 범위

프로그램이나 스크립트의 범위는 변수가 존재하는 영역입니다. 변수가 함수 내부에서 선언되면 일반적으로 지역 변수이고 외부에서 선언되면 전역 변수입니다. bash 스크립트의 경우 이 개념은 약간 다릅니다. 여기서는 기본적으로 함수 내부에 작성되거나 함수 외부에 작성되는 모든 변수가 전역 변수입니다. 지역 변수를 만들고 싶다면 local 키워드를 사용해야 합니다.

불필요한 혼란을 피하기 위해 항상 함수 내에서 지역 변수를 사용하는 것이 가장 좋습니다.

동일한 예가 아래에 나와 있습니다.

특수문자다

변수 범위의 예:

#!/bin/bash var1='Apple' #global variable myfun(){ local var2='Banana' #local variable var3='Cherry' #global variable echo 'The name of first fruit is $var1' echo 'The name of second fruit is $var2' } myfun #calling function echo 'The name of first fruit is $var1' #trying to access local variable echo 'The name of second fruit is $var2' echo 'The name of third fruit is $var3'>

가변 범위의 출력:

The name of first fruit is Apple The name of second fruit is Banana The name of first fruit is Apple The name of second fruit is The name of third fruit is Cherry>

위의 예에서 var2는 지역 변수이므로 함수에서 이에 액세스할 때는 제대로 작동하지만 함수 외부에서 액세스하려고 하면 출력에 빈 결과가 표시됩니다.

반면 프로그래밍 언어와 달리 var3은 함수 내부에 정의되어 있어도 여전히 전역 변수로 작동하며 함수 외부에서 액세스할 수 있습니다. 아래는 스크립트를 실행한 후의 터미널 셸 묘사입니다.

가변 범위의 출력

명령 재정의

명령과 동일한 이름을 가진 함수가 있을 수 있습니다. 특정 옵션을 사용하여 명령을 실행하거나 사용자 정의 버전을 원하는 경우 유용합니다.

동일한 예가 아래에 나와 있습니다.

명령 재정의의 예:

#!/bin/bash #overriding command echo(){ builtin echo 'The name is : ' } echo 'Satyajit Ghosh'>

재정의 명령 출력:

The name is : Satyajit Ghosh>

이 예에서는 에코 명령. 이제 주어진 문자열을 인쇄하기 전에 문자열에 더 많은 단어를 추가한 다음 인쇄합니다. 아래는 스크립트를 실행한 후의 터미널 셸 묘사입니다.

재정의 명령 출력