Shell 스 크 립 트 전송 매개 변수 방법 요약

1.고정 길이 의 인 자 를 받 습 니 다.

[root@svn shell_example]# cat params.sh
#!/bin/bash
#
echo "My name is `basename $0` -I was called as $0"
echo "My first parameter is : $1"
echo "My second parameter is : $2"
빈 매개 변수 실행

[root@svn shell_example]# sh params.sh
My name is params.sh -I was called as params.sh
My first parameter is :
My second parameter is :
매개 변수 2 개 전달 실행

[root@svn shell_example]# sh params.sh one two
My name is params.sh -I was called as params.sh
My first parameter is : one
My second parameter is : two
2.그럼 인자 가 있 으 면 어떻게 합 니까?한 명 씩 더?정 답 은 부정 적 이다
다음 용법 은 낯 설 지 않 을 것 입 니 다.바로 스 크 립 트 자 체 를 직접 실행 하 는 것 입 니 다.어떠한 인자 도 첨부 되 지 않 았 습 니 다.그러면 스 크 립 트 는 도움말 정 보 를 말 합 니 다.즉,이 스 크 립 트 를 어떻게 사용 하 는 지 입 니 다.빨 간 글자 부분 을 보십시오.

[root@svn shell_example]# sh params_v2.sh
My name is params_v2.sh -I was called as params_v2.sh
I was called with 0 parameters.
Usage: params_v2.sh first second
You provided 0 parameters,but 2 are required.
코드 는 다음 과 같다.

[root@svn shell_example]# cat params_v2.sh
#!/bin/bash
#

echo "My name is `basename $0` -I was called as $0"
echo "I was called with $# parameters."

if [ "$#" -eq "2" ];then
    echo "My first parameter is $1"
    echo "My second parameter is $2"
else
    echo "Usage: `basename $0` first second"
    echo "You provided $# parameters,but 2 are required."
fi

자세 한 실행 과정 은 다음 과 같다.
전달 되 지 않 는 매개 변수 실행

[root@svn shell_example]# sh params_v2.sh
My name is params_v2.sh -I was called as params_v2.sh
I was called with 0 parameters.
Usage: params_v2.sh first second
You provided 0 parameters,but 2 are required.
매개 변수 3 개 전달 실행

[root@svn shell_example]# sh params_v2.sh one two three
My name is params_v2.sh -I was called as params_v2.sh
I was called with 3 parameters.
Usage: params_v2.sh first second
You provided 3 parameters,but 2 are required.
매개 변수 2 개 전달 실행

[root@svn shell_example]# sh params_v2.sh one two
My name is params_v2.sh -I was called as params_v2.sh
I was called with 2 parameters.
My first parameter is one
My second parameter is two
문제 가 생 겼 는데 후기 에 인 자 를 더 하면 어떻게 합 니까?아니면 나 도 도대체 몇 개의 인 자 를 전달 할 지 확실 하지 않다.
해결 방법 은 다음 과 같 고 상세 한 집행 결 과 는 다음 과 같다.

[root@svn shell_example]# cat manyparams.sh
#!/bin/bash
# N

echo " `basename $0` - $0"
echo " $# "

count=1
while [ "$#" -ge "1" ];do
    echo " $count $1"
    let count=count+1
    shift
done

매개 변수 실행
[root@svn shell_example]# sh manyparams.sh one
제 이름 은 manyparams.sh 입 니 다.-저 는 manyparams.sh 입 니 다.
저 는 1 인자 가 있 습 니 다.
매개 변수 번호 가 1 이면 one 입 니 다.
5 개 매개 변수 실행

[root@svn shell_example]# sh manyparams.sh one two three four five
제 이름 은 manyparams.sh 입 니 다.-저 는 manyparams.sh 입 니 다.
저 는 5 인자 가 있 습 니 다.
매개 변수 번호 가 1 이면 one 입 니 다.
매개 변수 번호 2 는 two 입 니 다.
매개 변수 번호 3 은 three 입 니 다.
매개 변수 번호 4 는 four 입 니 다.
매개 변수 번호 5 는 five 입 니 다.

좋은 웹페이지 즐겨찾기