두 개의 매개변수를 사용하여 호출되는 스크립트가 있습니다.
./script.sh a b
현재 $1 및 $2(예: )를 통해 읽고 있습니다 cd $1
. 내 문제는 인용된 매개변수를 사용하여 스크립트를 호출할 때 출력이 동일해야 한다는 것입니다.
./script.sh "a b"
내가 올바르게 이해했다면 두 개의 매개변수를 $1
변수에 전달합니다. 이를 수행하는 간단하고 깔끔한 방법이 있습니까, 아니면 공백에 대한 첫 번째 인수를 확인하고 이를 배열로 분할하고 배열의 일부를 두 개의 개별 변수에 전달한 다음 전체를 실행해야합니까? 스크립트에서 사용?
답변1
가장 쉬운 방법은 이것을 스크립트 상단에 넣는 것입니다.
set -- $*
그러면 매개변수 목록이 다시 확장되므로 매개변수의 공백이 새 매개변수 사이의 구분 기호가 됩니다.
매개변수에 매우 복잡한 인용부호(예: 인용부호)가 있는 경우 일부 복잡한 동작이 발생할 수 있지만 제 생각에는 이런 일이 발생할 가능성이 거의 없습니다.