programing

특별한 달러 기호 셸 변수는 무엇입니까?

powerit 2023. 4. 23. 11:34
반응형

특별한 달러 기호 셸 변수는 무엇입니까?

Bash에는 특별한 일관된 의미 값을 갖는 변수가 여러 개 있는 것으로 보입니다.예를 들어.

./myprogram &; echo $!

백그라운드된 프로세스의 PID를 반환합니다.myprogram다른 사람을 알고 있습니다.$?현재의 TTY라고 생각합니다.다른 이들이 있나요?

  • $1,$2,$3, ...는 위치 파라미터입니다.
  • "$@"는 모든 위치 파라미터의 배열과 같은 구성입니다.{$1, $2, $3 ...}.
  • "$*"모든 위치 파라미터의 IFS 확장입니다.$1 $2 $3 ....
  • $#는 위치 파라미터의 수입니다.
  • $-셸에 설정된 현재 옵션.
  • $$(서브셸이 아닌) 현재 셸의 pid.
  • $_최신 파라미터(또는 시작 후 즉시 현재 셸을 시작하는 명령어 abs 경로)
  • $IFS는 (입력) 필드 구분자입니다.
  • $?는 최신 전경 파이프라인 종료 상태입니다.
  • $!는 최신 background 명령어 PID 입니다.
  • $0는 셸 또는 셸 스크립트의 이름입니다.

위의 대부분은 Bash 참조 매뉴얼의 특수 매개 변수에서 찾을 수 있습니다.에 의해 설정된 모든 환경변수를 다음에 나타냅니다.

종합 인덱스는 참조 매뉴얼 변수 인덱스를 참조하십시오.

  • $_마지막 명령어의 마지막 인수
  • $#현재 스크립트에 전달된 인수 수
  • $*/$@문자열/구분 목록으로 스크립트에 전달된 인수 목록

머릿속에서 맴돌고 있어요.bash 특수 변수용 구글.

이해에 도움이 되다$#,$0그리고.$1, ...,$ndo, 나는 다음 스크립트를 사용합니다.

#!/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에 대한 것입니다.

언급URL : https://stackoverflow.com/questions/5163144/what-are-the-special-dollar-sign-shell-variables

반응형