★ 쉘 기능 매개 변수
그리고 C ++ , C # , Python 대부분의 프로그래밍은 다른 언어로, Shell 함수 매개 변수는 정의에 지정할 수 없지만 Shique 호출에서 매개 변수를 전달할 수 있습니다.
함수 매개 변수는 함수 내에서 수신 하는 데 사용할 수있는 일종의 Shell 위치 매개 변수$n 입니다. 예를 들어, $ 1은 첫 번째 매개 변수를, $ 2는 두 번째 매개 변수를 나타냅니다.
또한 $n세 가지 더 중요한 변수가 있습니다.
- $#전달 된 매개 변수의 수를 얻을 수 있습니다.
- $@또는 $*모든 매개 변수를 한 번에 가져올 수 있습니다.
$ n, $ #, $ @ 및 $ *는 모두 특수 변수입니다.
[예제 1] $ n을 사용하여 함수 매개 변수를받습니다.
- #! / bin / bash
- # 기능 정의
- function show () {
- echo "튜토리얼 : $ 1"
- echo "URL : $ 2"
- echo "저자 :" $ 3
- echo "총 $# 매개변수"
- }
- # 호출 기능
- show C# http://www.daumset.net/csharp/ Tom
실행 결과 :
튜토리얼 : C#
URL : http://www.daumset.net/csharp/
저자 : Tom
총 3개 매개변수
코드 7 번째 줄 작성은 약간 다르며 여기에서는 Shell string splicing 기술 이 사용됩니다 .
[예제 2] $ @를 사용하여 함수 매개 변수를 탐색합니다.
모든 매개 변수의 합계를 계산하는 함수를 정의하십시오.
- #! / bin / bash
- function getsum () {
- local sum = 0
- for n in $@
- do
- (( sum + = n ))
- done
- echo $sum
- return 0
- }
- # 함수를 호출하고 매개으로 전달하고 마지막 결과를 내부에 할당
- total = $ ( getsum 10 20 55 15 )
- echo $total
- # 변수를 생략 할 수도 있습니다.
- 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
'Linux' 카테고리의 다른 글
Linux Shell 리디렉션 (입력 및 출력 리디렉션) - 2장 (0) | 2020.10.19 |
---|---|
Linux Shell 리디렉션 (입력 및 출력 리디렉션) - 1장 (0) | 2020.10.19 |
Shell 함수 상세 설명 (함수 정의, 함수 호출) (0) | 2020.10.14 |
쉘 중단 및 루프에서 계속 자세한 설명 (0) | 2020.10.14 |
루프 세부 사항에서 쉘 선택 (0) | 2020.10.13 |