
위치 매개 변수를 저장하는 변수
위치 매개 변수를 사용하는 쉘의 전형적인 예는 bash입니다. Linux, BSD, macOS X 및 Windows 10에서 bash를 사용할 수 있습니다.
다음 bash 명령을 고려하십시오. 명령 이름은 mycommand 입니다. 명령 행에는 3 개의 매개 변수 ( 1, 2 및 3 개의 4 개)가 있습니다.
mycommand 1 2 "3 4"
팁 : 위치 매개 변수는 공백으로 구분됩니다. 쉘은 공백 다음의 것들을 개별 매개 변수로 해석합니다. 매개 변수 자체에 공백이 있으면 위의 "three four"와 같이 따옴표로 묶습니다.
mycommand 가 실행되는 동안 bash는 다음 쉘 변수를 제공합니다.
변수 이름 | 값 |
---|---|
0 달러 | mycommand |
$ 1 | 하나 |
$ 2 | 두 |
3 달러 | 삼 사 |
$ # | 삼 |
[이메일 보호] | 하나 둘 셋 넷 |
$ * | 하나 둘 셋 넷 |
변수 $ 0 은 명령의 첫 단어 즉 명령 이름으로 설정됩니다. 이 변수는 명령의 이름을 바꾸거나 기호 링크를 사용하여 실행할 수 있기 때문에 유용합니다. 일부 프로그램은 프로그램을 실행하는 데 사용 된 명령 이름에 따라 다르게 작동합니다. $ 0 은 프로그램이 어떤 명령 이름을 시작했는지 볼 수있게합니다.
변수 $ 1, $ 2 및 $ 3 에는 각각 첫 번째 매개 변수, 두 번째 매개 변수 및 세 번째 매개 변수의 값이 들어 있습니다. 네 번째 매개 변수가 있으면 해당 값은 $ 4 변수에 저장됩니다. 숫자보다 큰 매개 변수는 숫자 주위에 중괄호를 사용하여 액세스 할 수 있습니다. 예를 들어 $ {10} 은 열 번째 매개 변수이고 $ {123} 은 123 번째 매개 변수가됩니다.
변수 $ # 는 $ 0을 제외한 위치 매개 변수의 수를 포함합니다.
[email protected] 변수에는 $ 0을 제외한 모든 위치 매개 변수의 값이 포함됩니다.
변수 $ * 는 [전자 메일 보호] 와 동일하지만 큰 따옴표로 묶은 것입니다. 큰 따옴표로 묶을 때 $ * 는 $ 1c $ 2c $ 3c로 확장됩니다 ... 여기서 c 는 $ IFS 의 첫 번째 문자 인 bash의 내부 필드 분리 자 변수입니다. IFS는 단어 분리에 사용되며 기본값은 "공백, 탭 또는 개행"입니다. bash는 한 단어의 끝과 다음 단어의 시작을 봅니다.
$ IFS 의 값이 " _ "(밑줄)이면 "[email protected]"는 다음으로 확장됩니다.
하나 둘 셋 넷
"$ *"는 다음과 같이 확장됩니다.
하나 둘 셋 넷
예제들
다음은 bash에서 위치 매개 변수를 사용하는 몇 가지 예입니다.
set 내장 명령을 사용하면 [email protected] 값을 현재 쉘에 대해 수정할 수 있습니다. 설정 후 모든 것은 위치 매개 변수로 등록됩니다.
세트 - 1 2 "3 4"
이제 for ... for를 사용하여 이러한 변수를 반복 할 수 있습니다.
arg에 대한 [이메일 보호]; echo "$ arg"; 끝난
하나 둘 셋 넷
bash에서는 [email protected] 가 실행될 때 반복 할 기본 목록이므로이 명령도 작동합니다.
arg의 경우; echo "$ arg"; 끝난
하나 둘 셋 넷
"$ *" (큰 따옴표 사용) 반복은 $ IFS 의 첫 번째 문자와 결합 된 위치 매개 변수의 연결 문자열을 제공합니다.
IFS = ", "; "$ *"에있는 arg의 경우; echo "$ arg"; 끝난
하나 둘 셋 넷
자세한 정보는 bash 명령 쉘의 문서를 참조하십시오.
매개 변수, 프로그래밍 용어