셸 스 크 립 트 호출 방법 및 전달 매개 변수

1679 단어 나의 학습
Command
Explanation
fork
새 키 Shell 을 열 어 실행 합 니 다. 하위 Shell 은 부모 Shell 에서 환경 변 수 를 계승 할 수 있 지만 하위 Shell 의 환경 변 수 는 부모 Shell 에 가 져 오지 않 습 니 다.
exec
같은 Shell 에서 실행 되 지만 부모 스 크 립 트 에서  exec  행 이후 의 내용 은 더 이상 집행 되 지 않 습 니 다.
source
같은 Shell 에서 실 행 됩 니 다. 호출 된 스 크 립 트 에서 설명 한 변수 와 환경 변 수 는 주 스 크 립 트 에서 가 져 오고 사용 할 수 있 습 니 다. 두 스 크 립 트 를 합 쳐 실행 하 는 것 과 같 습 니 다.
매개 변수 처리
설명 하 다.
$#
스 크 립 트 에 전 달 된 매개 변수 개수
$*
스 크 립 트 에 전 달 된 모든 인 자 를 단일 문자열 로 표시 합 니 다.예 를 들 어 '$*' 가 '' 로 묶 인 경우 '$1 $2... $n' 의 형식 으로 모든 인 자 를 출력 합 니 다.
$$
스 크 립 트 가 실행 중인 현재 프로 세 스 ID 번호
$!
백그라운드 에서 실행 중인 마지막 프로 세 스 의 ID 번호
$@
$* 와 같 지만 사용 할 때 따옴표 를 추가 하고 따옴표 에서 모든 인 자 를 되 돌려 줍 니 다. 예 를 들 어 "$@" 을 "" "로 묶 은 경우" $1 "" $2 "..." $n "형식 으로 모든 인 자 를 출력 합 니 다.
$-
셸 이 사용 하 는 현재 옵션 을 보 여 줍 니 다. set 명령 기능 과 같 습 니 다.
$?
마지막 명령 의 종료 상 태 를 표시 합 니 다.0 은 오류 가 없 음 을 나타 내 고 다른 값 은 오류 가 있 음 을 나타 낸다.
 
$* 와 $@ 의 차이 점:
  • 공통점: 모든 인 자 를 참조 합 니 다.
  • 차이 점: 작은 따옴표 에 만 나타난다.스 크 립 트 가 실 행 될 때 세 개의 매개 변 수 를 썼 다 고 가정 하면 '*' 는 '1, 2, 3' (하나의 매개 변 수 를 전달 했다) 과 같 고 '@' 은 '1', '2', '3' (세 개의 매개 변 수 를 전달 했다) 과 같다.
  • #!/bin/bash
    # author:    
    # url:www.runoob.com
    
    echo "-- \$*    ---"
    for i in "$*"; do
        echo $i
    done
    
    echo "-- \$@    ---"
    for i in "$@"; do
        echo $i
    done

    스 크 립 트 를 실행 합 니 다. 출력 결 과 는 다음 과 같 습 니 다.
    $ chmod +x test.sh 
    $ ./test.sh 1 2 3
    -- $*    ---
    1 2 3
    -- $@    ---
    1
    2
    3

    좋은 웹페이지 즐겨찾기