Program Tip

특수 달러 기호 쉘 변수는 무엇입니까?

programtip 2020. 9. 29. 18:25
반응형

특수 달러 기호 쉘 변수는 무엇입니까?


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 에서 찾을 수 있습니다 . 쉘에서 설정 한 모든 환경 변수 가 있습니다 .

포괄적 인 색인은 참조 설명서 변수 색인을 참조 하십시오 .


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

내 머리 위로. Google for bash 특수 변수.


도와 줄 이해 $#, $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에 있습니다.

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

반응형