Bash에는 일관되고 의미있는 특수 값을 보유하는 여러 변수가있는 것으로 보입니다. 예를 들어
./myprogram &; echo $!
배경 프로세스의 PID를 반환합니다 myprogram
. $?
현재 TTY라고 생각되는 다른 사람들을 알고 있습니다 . 다른 사람이 있습니까?
답변
$1
,$2
,$3
, …있는 위치 파라미터 ."$@"
는 모든 위치 매개 변수의 배열과 유사한 구성입니다{$1, $2, $3 ...}
."$*"
모든 위치 매개 변수의 IFS 확장입니다$1 $2 $3 ...
.$#
위치 매개 변수의 수입니다.$-
쉘에 대해 설정된 현재 옵션.$$
현재 쉘의 pid (서브 쉘 아님).$_
가장 최근 매개 변수 (또는 시작 직후에 현재 쉘을 시작하는 명령의 abs 경로).$IFS
(입력) 필드 구분 기호입니다.$?
가장 최근의 포 그라운드 파이프 라인 종료 상태입니다.$!
가장 최근의 백그라운드 명령의 PID입니다.$0
쉘 또는 쉘 스크립트의 이름입니다.
위의 대부분은 Bash Reference Manual의 Special Parameters 에서 찾을 수 있습니다 . 쉘이 설정 한 모든 환경 변수 가 있습니다 .
종합적인 색인은 Reference Manual Variable Index 를 참조하십시오 .
답변
$_
마지막 명령의 마지막 인수$#
현재 스크립트에 전달 된 인수 수$*
/$@
문자열 / 구분 목록으로 스크립트에 전달 된 인수 목록
내 머리 꼭대기에서. bash 특수 변수 용 Google.
답변
도와 줄 이해 $#
, $0
그리고 $1
, …, $n
나는이 스크립트를 사용합니까 :
#!/bin/bash
for ((i=0; i<=$#; i++)); do
echo "parameter $i --> ${!i}"
done
이를 실행하면 대표 출력이 리턴됩니다.
$ ./myparams.sh "hello" "how are you" "i am fine"
parameter 0 --> myparams.sh
parameter 1 --> hello
parameter 2 --> how are you
parameter 3 --> i am fine
답변
몇 가지 예를 살펴보십시오. $ 0에는 프로그램 이름뿐만 아니라 일부 선행 경로가 포함될 수 있습니다. 예를 들어이 두 줄 스크립트를 ./mytry.sh로 저장하고 실행하십시오.
#!/bin/bash
echo "parameter 0 --> $0" ; exit 0
산출:
parameter 0 --> ./mytry.sh
이것은 Slackware 14.2를 통해 현재 (2016 년) Bash 버전입니다.