Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

Bash에서 함수를 작성하는 방법

프로그래밍할 때 말 그대로 프로시저 또는 루틴을 정의하는 것입니다. , 컴퓨터가 수행하기를 원합니다. 간단한 비유는 컴퓨터 프로그래밍을 빵 굽기에 비유합니다. 작업 환경을 설정하기 위해 한 번 재료를 나열한 다음 빵 한 덩어리를 만들기 위해 수행해야 하는 단계를 나열합니다. 프로그래밍과 베이킹 모두에서 일부 단계는 다른 간격으로 반복되어야 합니다. 예를 들어 빵을 굽는 경우 사워도우 배양액을 공급하는 과정이 될 수 있습니다.

STIR=100
SNOOZE=86400

function feed_culture {
  remove_from(pantry)
  add(flour, water)
  stir($STIR)
  sleep($SNOOZE)
}

그리고 나중에 반죽을 반죽하고 발효시킵니다.

KNEAD=600
SNOOZE=7200

function process_dough {
  remove_from(proofing_drawer)
  knead($KNEAD)
  return_to_drawer($SNOOZE)
}

프로그래밍에서 이러한 서브루틴은 함수로 표현될 수 있습니다. . 함수는 코드의 중복성을 줄이는 데 도움이 되므로 프로그래머에게 중요합니다. 예를 들어 프로그래밍 방식으로 빵을 굽는 상상의 시나리오에서 반죽이 굳는 시간을 변경해야 하는 경우 이전에 함수를 사용한 적이 있는 한 다음 중 한 가지 방법으로 초 값을 한 번만 변경하면 됩니다. 변수 사용(SNOOZE 이라고 함) 샘플 코드에서) 또는 반죽을 처리하는 서브루틴에서 직접. 이렇게 하면 상승하는 반죽에 대한 모든 가능한 언급을 위해 코드베이스를 뒤질 필요가 없고 누락에 대한 걱정도 훨씬 덜하기 때문에 많은 시간을 절약할 수 있습니다. 많은 버그가 변경되지 않은 누락된 값이나 제대로 실행되지 않은 sed로 인해 발생했습니다. 수동으로 사냥할 필요 없이 모든 마지막 경기를 잡기 위한 명령입니다.

Bash에서 함수를 정의하는 것은 작성 중인 스크립트 파일이나 별도의 파일에서 설정하는 것만큼 쉽습니다. 함수를 전용 파일에 저장하면 source include하는 것처럼 스크립트에 추가합니다. C 또는 C++의 라이브러리 또는 import 모듈을 파이썬으로. Bash 함수를 만들려면 function 키워드를 사용하세요. :

function foo {
# code here
}

다음은 함수가 인수를 사용하여 작동하는 방법에 대한 간단한(더 간단하게 만들 수 있으므로 다소 인위적인) 예입니다.

#!/usr/bin/env bash
ARG=$1

function mimic {
  if [[ -z $ARG ]]; then
    ARG='world'
  fi
  echo "hello $ARG"
}

mimic $ARG

결과는 다음과 같습니다.

$ ./mimic
hello world
$ ./mimic everybody
hello everybody

함수를 실행하는 스크립트의 마지막 줄에 유의하십시오. 이것은 스크립터와 프로그래머를 시작하는 사람들이 혼동하는 공통 지점입니다. 함수는 자동으로 실행되지 않습니다. 그들은 잠재적으로 존재합니다. 호출될 때까지 루틴을 실행합니다.

함수를 호출하는 줄이 없으면 함수는 정의만 되고 실행되지 않습니다.

Bash를 처음 사용하는 경우 마지막 줄을 포함하고 마지막 줄을 주석 처리한 상태에서 샘플 스크립트를 한 번 실행해 보십시오.

함수 사용

함수는 간단한 스크립트의 경우에도 중요한 프로그래밍 개념입니다. 함수에 익숙해질수록 단지 선언적인 명령 줄보다 더 동적인 것이 필요한 복잡한 문제에 직면했을 때 더 나아질 것입니다. 범용 함수를 별도의 파일에 보관하면 일반적으로 사용하는 루틴을 빌드하여 프로젝트 전체에서 재사용할 수 있으므로 작업을 일부 절약할 수도 있습니다. 스크립팅 습관을 보고 기능이 어디에 적합한지 확인하십시오.