$*
은 쉘 스크립트에서 정확히 무엇을 의미합니까?
예를 들어 다음 코드 조각을 고려
$JAVA_HOME/bin/java/com/test/Testclass $*
$*
은 쉘 스크립트에서 정확히 무엇을 의미합니까?
예를 들어 다음 코드 조각을 고려
$JAVA_HOME/bin/java/com/test/Testclass $*
모든 인수는 스크립트 또는 함수로 전달되며 단어 단위로 구분됩니다.
일반적으로 잘못된 것이므로 인수를 올바르게 구분하는 "[email protected]"
으로 대체해야합니다.
글쎄, 이미 $ *가 처음으로 하나의 문자열로 구성되는 방법을 설명했다. 여기서 중요한 것은 쉼표가 인용되지 않는 한 셸의 정상적인 단어 분할을 받게된다는 것입니다. "$ *"인수가 여전히 하나의 긴 문자열로 처리되는지 확인합니다. "$ @"는 인수 목록을 따옴표로 묶인 문자열의 배열로 강제 처리합니다. 각각은 그것의 사용법을 가지고 있으며 차이점을 아는 것이 중요합니다. –
그것은 스스로 답을 쉽게 찾을 수 있습니다 : man bash
→ /\$\*
:
특수 파라미터
쉘 취급 여러 매개 변수를 특별히 . 이러한 매개 변수는 참조 할 수만 있습니다. 그들에게 할당하는 것은 허용되지 않습니다.
- 하나부터 시작하여 위치 매개 변수로 확장됩니다. 이중 따옴표 내에서 확장이 발생하면 각 매개 변수의 값이
IFS
특수 변수의 첫 번째 문자로 구분 된 단일 단어로 확장됩니다. 즉,"$*"
은"$1c$2c..."
과 같습니다. 여기서c
은IFS
변수의 첫 번째 문자입니다.IFS
이 설정되어 있지 않으면 매개 변수가 공백으로 구분됩니다.IFS
이 null 인 경우 매개 변수는 중간에 구분 기호없이 결합됩니다.
$*
은 해당 쉘 스크립트에 전달 된 모든 매개 변수로 확장됩니다.
$0
= 쉘 스크립트의 이름
$1
= 첫 번째 인수 = 두 번째 인수
$2
... 등
$#
=
HTTP를 쉘 스크립트에 전달 된 인수의 수 : // tldp .org/LDP/abs/html/internalvariables.html # ARGLIST – alfasin
명령 행의 모든 위치 매개 변수가 script : http://tldp.org/LDP/abs/html/internalvariables.html#APPREF – GreenMatt
POSIX를 기반으로 한 문서는 bash 이외의 다른 사람들에게도 적용되므로 특히 유용합니다. http://pubs.opengroup.org/ onlinepubs/9699919799/utilities/V3_chap02.html # tag_18_05_02 –