위치 매개 변수 란 무엇입니까?

위치 매개 변수 는 명령 행에 지정된 인수이며 현재 프로세스를 쉘에서 실행하는 데 사용됩니다. 위치 매개 변수 값은 쉘이 유지 관리하는 특수 변수 세트에 저장됩니다.

위치 매개 변수를 저장하는 변수

위치 매개 변수를 사용하는 쉘의 전형적인 예는 bash입니다. Linux, BSD, macOS X 및 Windows 10에서 bash를 사용할 수 있습니다.

다음 bash 명령을 고려하십시오. 명령 이름은 mycommand 입니다. 명령 행에는 3 개의 매개 변수 ( 1, 23 개의 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 명령 쉘의 문서를 참조하십시오.

매개 변수, 프로그래밍 용어