Shell $0, $#, $*, $@, $?, $$의미

1728 단어 linux
  • $0
  • 현재 스 크 립 트 의 파일 이름
  • $n
  • 스 크 립 트 나 함수 에 전달 되 는 인자 입 니 다.n 은 하나의 숫자 로 몇 번 째 인 자 를 나타 낸다.예 를 들 어 첫 번 째 인 자 는 $1 이 고 두 번 째 인 자 는 $2 입 니 다.
  • $#
  • 스 크 립 트 나 함수 에 전 달 된 매개 변수 갯 수 입 니 다.
  • $*
  • 스 크 립 트 나 함수 에 전 달 된 모든 인자.
  • $@
  • 스 크 립 트 나 함수 에 전 달 된 모든 인자.
  • $* 와 $@ 의 차이
  • $* 와 $@ 은 함수 나 스 크 립 트 에 전 달 된 모든 인 자 를 표시 합 니 다. 작은 따옴표 (") 에 포함 되 지 않 을 때"$1 ","2 ","2 ","n "으로 모든 인 자 를 출력 합 니 다
  • .
  • 두 따옴표 (") 에 포 함 될 때"$* "는 모든 인 자 를 하나의 전체 로 하고"$1 $2... n "의 형식 으로 모든 인 자 를 출력 합 니 다."n"의 형식 으로 모든 인 자 를 출력 합 니 다."n"의 형식 으로 모든 인 자 를 출력 합 니 다.'@' 은 각 인 자 를 분리 하여 '$1', '2', '2', '2', 'n' 의 형식 으로 모든 인 자 를 출력 합 니 다.
  • $? 이전 명령 의 종료 상태 나 함수 의 반환 값 입 니 다.
  • $현재 셸 프로 세 스 ID 입 니 다.셸 스 크 립 트 에 대해 서 는 이 스 크 립 트 가 있 는 프로 세 스 ID 입 니 다.

  • 다음 스 크 립 트 를 써 서 테스트 를 해 보도 록 하 겠 습 니 다.
  • vi parameter.sh
  • 
    #!/bin/bash
    echo $0
    echo $1
    echo $2
    echo "  nums:$#"
    echo "*"$*
    for M in $*
    do
     echo $M
    done
    echo "@" $@
    
    for M in $@
    do
     echo $M
    done
    
    echo "      1      : $*"
    for M in "$*"
    do
     echo $M
    done
    echo "        :$@"
    for N in "$@"
    do
     echo $N
    done
    echo "PID$$"
    $JAVA_HOME
    echo $?
    
  • sh parameter.sh one two three
  • parameter.sh
    one
    two
      nums:3
    *one two three
    one
    two
    three
    @ one two three
    one
    two
    three
          1      : one two three
    one two three
            :one two three
    one
    two
    three
    PID5697
    parameter.sh: line 29: /usr/java/jdk1.8.0_45: Is a directory
    126
    
    

    좋은 웹페이지 즐겨찾기