쉘 스크립트에서 전체 명령줄 호출에 액세스할 수 있는지 궁금합니다. 내 스크립트에서는 이를 추가로 전달해야 합니다. $@ 및 $* 접근자가 있지만 모든 문자를 전달하지는 않습니다. 예를 들어 명령줄에 작성하는 경우
$ my_script xyz -m "something here"
스크립트에서는 다음과 같이 명령줄 인수에 액세스합니다.
인수="$*"
$인수 에코
출력이 표시됩니다: xyz -m something here
. 안타깝게도 따옴표가 제거되었습니다. 그대로 유지할 수 있나요? 그런 다음 이 인수를 다른 스크립트에 전달하고 싶습니다. 그 중 몇 개가 될지, 줄의 어느 위치에 따옴표가 있을지 모르겠습니다.
답변1
실제로 문제를 해결한 후 첫 번째 스크립트에서 위에 쓴 것처럼 두 번째 스크립트를 실행합니다. 하지만 실제로 첫 번째 스크립트에서는 다음을 사용해야 합니다.
second_script "$@"
두 번째 스크립트를 실행하려면 이제 예상대로 작동합니다. $@ 주변의 따옴표가 관련됩니다.