나는 -g "hello world"
스타일의 인수를 허용하는 프로그램을 가지고 있습니다.Bash : 쉘 변수에서 인수 그룹핑을 제어 하시겠습니까?
프로그램이 올바르게 작동하려면 -g
및 "hello world"
은 실제로 두 개의 독립된 인수 여야합니다.
아래의 쉘 스크립트
은 뭔가를 자동화 할 것으로 생각된다 :-g "hello world"
bash에 의해 하나의 인수로 취급되기 때문에
MYPROG=/path/to/bin
MYARG=-g\ \"hello\ world\"
"$MYPROG" "$MYARG"
은 물론,이 작동하지 않습니다.
MYPROG=/path/to/bin
MYARG1=-g
MYARG2=\"hello\ world\"
"$MYPROG" "$MYARG1" "$MYARG2"
이제 두 개의 인수 등으로 처리되기 때문에이 작동합니다 :
하나의 해결책은 같은 것을 가지고 쉘 스크립트에서 직접 -g
및 "hello world"
을 분할하는 것입니다. 그러나 -g
과 "hello world"
이 함께 있기 때문에 쉘 스크립트는 다소 어색해 보일 것입니다. 특히 스크립트에서 이와 같이 정의 된 수백 개의 인수가있는 경우.
내 질문은, 어떻게 내 변수를 두 변수로 분리하지 않고 하나의 변수를 두 개의 인수로 취급 할 수 있습니까? @gniourf_gniourf 말했듯이
이것을 처리하는 유일한 방법은 배쉬를 사용하는 것입니다. –
@shellter 나는 이미 그것을 시도했지만, 불행히도 공백에 내 args를 그룹화하지 않습니다. – ctitze