BASH 변수 목록을 많이 찾았습니다.https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html
설명에 따르면,
이러한 변수는 Bash에서 설정하거나 사용하지만 다른 쉘에서는 일반적으로 이를 특별히 처리하지 않습니다.
첫 번째 변수는,
BASH: 현재 Bash 인스턴스를 실행하는 데 사용되는 전체 경로 이름입니다.
하지만 BASH
터미널에 입력 하면bash: BASH: command not found
echo $0
을 사용하고 있음을 확인할 수 있습니다 bash
.
마찬가지로, 명령을 실행하면 BASH_VERSINFO
명령 설명에 다음과 같이 나와 있지만 동일한 출력이 표시됩니다.
해당 멤버가 이 Bash 인스턴스에 대한 버전 정보를 보유하는 읽기 전용 배열 변수(배열 참조)입니다. 배열 멤버에 할당되는 값은 다음과 같습니다.
BASH_VERSINFO[0] 주 버전 번호(릴리스 버전)입니다.
BASH_VERSINFO[1] 부 버전 번호(버전)입니다.
BASH_VERSINFO[2] 패치 수준입니다.
BASH_VERSINFO[3] 빌드 버전입니다.
BASH_VERSINFO[4] 릴리스 상태(예: 베타1).
BASH_VERSINFO[5] MACHTYPE의 값입니다.
예를 들어 일부 변수는 작동합니다 hostname
.pwd
답변1
변수를 직접 입력하면 쉘은 입력한 내용을 명령으로 해석하고 $PATH 변수에서 동일한 이름을 가진 항목을 검색합니다. $PATH에 BASH 및 BASH_VERSINFO라는 항목이 없기 때문에 "명령을 찾을 수 없음" 오류 메시지가 나타납니다. 반면에 발견한 대로 이는 유효한 명령입니다 pwd
.hostname
echo
대신 변수(일반적 으로 둘 다 쉘에 내장되어 있음) 를 인쇄하는 명령을 실행 printf
하고 검사하려는 변수를 명령에 대한 인수로 제공해야 합니다. 명령 이름은 일반적으로 소문자로만 구성되는 반면, 쉘 환경 변수는 일반적으로 대문자로만 구성됩니다.
언급한 변수의 값을 표시하려면 다음을 시도하십시오.
$ echo "$BASH"
/bin/bash
$ for i in {0..4}; do printf "%d\t%s\n" "$i" "${BASH_VERSINFO[$i]}"; done
0 4
1 4
2 12
3 1
4 release
배열 변수를 인쇄하려면 "${ARR_NAME[$index]}" 구문을 사용하세요. Bash 인덱싱은 0부터 시작됩니다. 일반적으로 원치 않는 동작을 피하기 위해 변수(배열 포함)를 큰따옴표로 묶어야 합니다(따옴표 생략은 아래와 같이 분할 글롭 연산자와 동일합니다).여기).
답변2
pwd
명령이다.
echo $BASH
하지만
BASH
아니요