bash의 기능

2720 단어 bash

기능



함수는 수학에서 많은 프로그래밍 언어에 이르기까지 친숙한 주제입니다. 함수에는 정의된 연산 또는 계산이 있습니다(예: f(x)=x ^ 2).

일반적으로 함수는 하나 이상의 입력을 받아 입력에 대해 작동하고 출력을 반환합니다. 예에서와 같이 x가 주어지면 함수는 x ^ 2를 반환합니다.

bash의 기능



Bash 스크립트도 함수를 가질 수 있습니다. 까다로운 부분은 계산 결과를 반환하는 것입니다. 함수의 계산 결과를 함수 호출자에게 다시 반환하는 몇 가지 옵션이 있습니다.

반환 키워드 사용



bash에서 return은 실행 상태에 사용됩니다. 실행 상태는 0 - 2 ^ 7 범위의 정수로 표시되며 0은 실패를 나타내고 나머지는 실패를 나타냅니다. 이러한 함수의 호출자는 $?를 사용해야 합니다. 반환된 값을 읽을 수 있습니다. 이 접근 방식은 계산 결과가 항상 손실로 반환되지 않을 수 있다는 제한적입니다. 범위 0-255는 정수의 범위가 너무 작습니다. 아마도 유치원에서 온 제 조카가 사용할 수 있을 것입니다!

#!/bin/bash
function add() {
  return $(expr 200 + 200)
}

# main
add
echo $?


이것을 시도하십시오! 400을 기대하지만 결과는 다를 것입니다(144). 분명히 반환은 계산 결과 반환을 의미하지 않습니다. 계산 상태를 반환하기 위한 것입니다. 0 반환 코드는 의미하고 다른 정수는 계산에서 문제가 발생했음을 의미합니다.

전역 변수 사용



전역 변수를 사용하는 것은 상태 변경을 이끄는 순진한 접근 방식입니다. 전역 변수 기반 접근 방식에 의존하면 거의 스크립트가 상태 저장됩니다.

에코 키워드 사용



에코 사용은 제한이 없습니다. 임의의 유형이 반환될 수 있습니다(예: Int, String). 이러한 함수의 호출자는 평가를 사용하여 계산 출력을 소비해야 합니다. return 문과 달리 범위, 데이터 유형에 제한이 없으며 변이 상태가 없습니다.

#!/bin/bash
function add() {
   echo $(expr 200 + 200)
}

# main
sum=$(add 200 + 200)
echo $sum


에코 접근 방식을 사용하는 것이 스크립트 내에서 명령이 사용되는 방식에 더 가깝습니다.

#!/bin/bash
today=$(date)


명령date은 기본 제공 도구이며 예제는 사용법을 보여줍니다. 이제 echo를 더 많이 사용하는 것과 관련이 있습니다. 이러한 모든 라이브러리 기능으로 쉘을 빌드하고 필요한 쉘 스크립트로 가져올 수 있습니다.

에코가 있는 잡았다



echo의 목적은 값을 반환하는 것뿐이므로 콘솔 로깅을 수행하는 데 echo를 사용해서는 안 됩니다. 그러나 echo "My log message" > logfile에서 파일에 대한 로깅은 여전히 ​​양호합니다.

특정 권장 접근 방식은 없습니다. 시나리오와 팀이 따르는 원칙에 따라 다릅니다. 참조 투명성의 원칙, 순도를 엄격히 준수해야 하는 경우 선호되는 접근 방식은 에코 접근 방식을 사용하는 것입니다.

좋은 웹페이지 즐겨찾기