일반적으로 쉘 스크립트와 특히 Bash에서 "매개변수 확장"("변수 확장"이라고도 함)이란 무엇입니까?

일반적으로 쉘 스크립트와 특히 Bash에서 "매개변수 확장"("변수 확장"이라고도 함)이란 무엇입니까?

나는 "매개변수 확장"("변수 확장"이라고도 함)이라는 용어가 다음을 의미한다는 것을 이해합니다.우산 용어일반적으로, 특히 다음과 같이 Bash에서 관련되지 않은 여러 쉘 스크립트 작업이 있습니다.

  1. 변수 대체.
  2. 같은 행에 2개 이상의 값이 있으면 행이 분할됩니다.
  3. 특정 범위 내의 와일드카드 변수입니다.

어쩌면 더 있을 수도 있습니다.

용어 뒤에 숨은 철학을 올바르게 이해했다면 변수를 단순한 변수에서 보다 영향력 있는 데이터 흐름(예: 값 대체)으로 "확장"한 것입니다. 이제 변수가 무언가를 수행한 변수로 확장되었습니다.

내 질문:

일반적으로 용어를 충분히 정확하게 이해하고 있습니까? 답변에 언급해야 할 이 포괄적 용어에 따른 다른 작업이 있습니까?

답변1

변수 확장이라고도 하는 매개변수 확장은 수정자를 적용하여 형식을 매개변수 값으로 바꾸는 구문 구조입니다.$parameter${parameter}

쉘이 명령줄을 읽을 때, 줄을 단어로 분할하고, 다양한 확장을 수행하고(매개변수 확장은 그중 하나임) 리디렉션을 적용하는 등 잘 정의된 여러 단계를 통해 명령줄을 처리합니다. 예를 들어 Bash 셸은 먼저 줄을 단어로 나눕니다. 그런 다음 왼쪽에서 오른쪽으로 중괄호 확장, 물결표 확장, 매개변수 및 변수 확장, 산술 확장, 명령 대체 및 프로세스 확장을 수행한 다음 최종 단어 분할 및 경로 이름 확장을 수행합니다.

"가변 인쇄"가 무슨 뜻인지 이해가 되지 않습니다.

Globbing 또는 Bash 문서에서 "경로 이름 확장"이라고 부르는 것이 발생합니다.뒤쪽에변수 확장; 쉘은 문자가 있는지 명령줄의 각 단어를 확인하고 , *이들 중 하나라도 발견되면 해당 단어를 패턴으로 간주하고 특정 구성에 따라 일치하는 파일 목록으로 바꿉니다. 옵션.?[

자세한 내용은 쉘의 매뉴얼 페이지를 참조하십시오. 예를 들어 Bash에 대해서는 읽을 수 있습니다.매뉴얼 페이지, 이것참고 도서, 이것고급 스크립팅 가이드그리고 다른 많은 자료들.

답변2

내가 아는 한, 변수 확장 같은 것은 없습니다.

변수 및 셸(인수) 확장이 있습니다(참조:여기).

변수는 이름을 지정하여 참조할 수 있는 문자열 또는 숫자입니다.

myVariable=2

셸 매개변수 확장은 셸이 입력을 받아 이를 실행하기 전에 특정 규칙을 적용하는 프로세스입니다. 그래서 동시에:

echo $myVariable

유효한 실행 명령이 아닙니다. 왜냐하면 bash는 $myVariable의 현재 값이 실제로 2라는 것을 알아내기 위해 변수 목록을 참조해야 하는 일부 텍스트가 뒤에 오는 것을 "알고" 있기 때문입니다.

echo 2

쉘 확장을 이해하는 전체 과정은 실제로 bash가 특정 구문을 확장하기 위해 사용하는 규칙 세트와 큰따옴표(""), 작은따옴표('') 또는 역따옴표(``)를 사용할 때 이러한 규칙을 수정하는 방법을 이해하는 것입니다. .

관련 섹션을 주의 깊게 읽어 보시기 바랍니다.배쉬 참조 매뉴얼그리고 터미널에서의 몇 가지 연습.

관련 정보