Linux

쉘 기능 매개 변수 / Shell let 명령 : 정수에 대한 수학적 연산

빼이 2020. 10. 16. 17:44
반응형

★ 쉘 기능 매개 변수

그리고 C ++ , C # , Python 대부분의 프로그래밍은 다른 언어로, Shell 함수 매개 변수는 정의에 지정할 수 없지만 Shique 호출에서 매개 변수를 전달할 수 있습니다.


함수 매개 변수는 함수 내에서 수신 하는 데 사용할 수있는 일종의 Shell 위치 매개 변수$n 입니다. 예를 들어, $ 1은 첫 번째 매개 변수를, $ 2는 두 번째 매개 변수를 나타냅니다.


또한 $n세 가지 더 중요한 변수가 있습니다.

  • $#전달 된 매개 변수의 수를 얻을 수 있습니다.
  • $@또는 $*모든 매개 변수를 한 번에 가져올 수 있습니다. 

$ n, $ #, $ @ 및 $ *는 모두 특수 변수입니다. 


[예제 1] $ n을 사용하여 함수 매개 변수를받습니다.

  1. #! / bin / bash
  2. # 기능 정의
  3. function show () {
  4.     echo "튜토리얼 : $ 1"
  5.     echo "URL : $ 2"
  6.     echo "저자 :" $ 3
  7.     echo "총 $# 매개변수"
  8. }
  9. # 호출 기능
  10. show C# http://www.daumset.net/csharp/ Tom

실행 결과 :

튜토리얼 : C#

URL : http://www.daumset.net/csharp/

저자 : Tom

총 3개 매개변수


코드 7 번째 줄 작성은 약간 다르며 여기에서는 Shell string splicing 기술 이 사용됩니다 .


[예제 2] $ @를 사용하여 함수 매개 변수를 탐색합니다.

모든 매개 변수의 합계를 계산하는 함수를 정의하십시오.

  1. #! / bin / bash
  2. function getsum () {
  3.     local sum =  0
  4.     for n in $@
  5.     do
  6.          (( sum +  = n ))
  7.     done
  8.     echo $sum
  9.     return 0
  10. }
  11. # 함수를 호출하고 매개으로 전달하고 마지막 결과를 내부에 할당
  12. total = $ ( getsum 10  20  55  15 )
  13. echo $total
  14. # 변수를 생략 할 수도 있습니다.
  15. echo $( getsum 10  20  55  15 )

실행 결과 :

100

(100)



★ Shell let 명령 : 정수에 대한 수학적 연산


let 명령은 이중 괄호 (())와 비슷합니다. 둘 다 정수 연산을 수행하는 데 사용됩니다. 독자는 이미 " Shell (()) "을 배웠으며 let 명령을 배우는 것은 매우 간단합니다.


참고 : 이중 괄호 (())와 마찬가지로 let 명령은 정수 연산 만 수행 할 수 있으며 십진수 (부동 소수점 숫자) 또는 문자열에 대해서는 연산을 수행 할 수 없습니다.


Shell let 명령의 구문 형식은 다음과 같습니다.

  • let 표현식

또는

  • let "표현식"

또는

  • let '표현식'

그것들은 모두 표현식.


식에 Shell 특수 문자 (예 : |)가 포함 된 경우 식 을 큰 따옴표 " "또는 작은 따옴표로 묶어야합니다 ' '.


(())와 유사하게 let 명령은 한 번에 여러 표현식의 계산을 지원하며 마지막 표현식의 값이 전체 let 명령의 실행 결과로 사용됩니다. 그러나 여러 표현식 사이의 구분 기호의 경우 let 및 (())는 다릅니다.

  • let 명령은 공백을 사용하여 여러 표현식을 구분합니다.
  • (()) ,여러 표현식 을 쉼표로 구분하십시오 .

또한 이와 같은 let x+y메서드 를 작성하는 경우 Shell이 ​​x + y 값을 계산했지만 결과를 버립니다.이를 원하지 않으면 let sum=x+yx + y 결과를 변수 합계에 저장할 수 있습니다.


이 경우 (())는 분명히 더 유연하며 $((x+y))x + y의 결과를 얻는 데 사용할 수 있습니다 . 

다음 예를 고려하십시오.

  • [root] $ a = 10 b = 20
  • [root] $ echo $ ((a + b))
  • 30
  • [root] $ echo let a + b #error, echo는 let a + b를 문자열로 출력합니다.
  • let a + b


Shell let 명령 예제 데모

[예제 1] 변수 i에 8을 더합니다.

  • [root] $ i = 2
  • [root] $ let i + = 8
  • [root] $ echo $ i
  • 10

let i + = 8은 ((i + = 8))과 같지만 후자가 더 효율적입니다.


[예제 2] Let 뒤에 여러 표현식이 올 수 있습니다.

  • [root] $ a = 10 b = 35
  • [root] $ let a + = 6 c = a + b # 여러 표현식은 공백으로 구분됩니다.
  • [root] $ echo $ a $ c

16 51

반응형