셸 스 크 립 트 호출 방법 및 전달 매개 변수
1679 단어 나의 학습
Explanation
fork
새 키 Shell 을 열 어 실행 합 니 다. 하위 Shell 은 부모 Shell 에서 환경 변 수 를 계승 할 수 있 지만 하위 Shell 의 환경 변 수 는 부모 Shell 에 가 져 오지 않 습 니 다.
exec
같은 Shell 에서 실행 되 지만 부모 스 크 립 트 에서
exec
행 이후 의 내용 은 더 이상 집행 되 지 않 습 니 다.source
같은 Shell 에서 실 행 됩 니 다. 호출 된 스 크 립 트 에서 설명 한 변수 와 환경 변 수 는 주 스 크 립 트 에서 가 져 오고 사용 할 수 있 습 니 다. 두 스 크 립 트 를 합 쳐 실행 하 는 것 과 같 습 니 다.
매개 변수 처리
설명 하 다.
$#
스 크 립 트 에 전 달 된 매개 변수 개수
$*
스 크 립 트 에 전 달 된 모든 인 자 를 단일 문자열 로 표시 합 니 다.예 를 들 어 '$*' 가 '' 로 묶 인 경우 '$1 $2... $n' 의 형식 으로 모든 인 자 를 출력 합 니 다.
$$
스 크 립 트 가 실행 중인 현재 프로 세 스 ID 번호
$!
백그라운드 에서 실행 중인 마지막 프로 세 스 의 ID 번호
$@
$* 와 같 지만 사용 할 때 따옴표 를 추가 하고 따옴표 에서 모든 인 자 를 되 돌려 줍 니 다. 예 를 들 어 "$@" 을 "" "로 묶 은 경우" $1 "" $2 "..." $n "형식 으로 모든 인 자 를 출력 합 니 다.
$-
셸 이 사용 하 는 현재 옵션 을 보 여 줍 니 다. set 명령 기능 과 같 습 니 다.
$?
마지막 명령 의 종료 상 태 를 표시 합 니 다.0 은 오류 가 없 음 을 나타 내 고 다른 값 은 오류 가 있 음 을 나타 낸다.
$* 와 $@ 의 차이 점:
#!/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