컬을 사용하여 git에서 가져온 스크립트에 매개변수를 전달하는 방법을 찾고 있는데 내 스크립트에 매개변수가 필요합니다.
다음과 같이 스크립트에 매개변수를 전달하는 방법이 있습니까?
bash <(curl -Ls <git-script-path>)
스크립트 사용법: ./script.sh -p admin
. -p admin
제공하려고 합니다.bash <(curl -Ls <git-script-path>) -p admin
어떤 도움이라도 대단히 감사하겠습니다. 감사해요
답변1
curl -Ls <git-script-path> | bash -s -- -p admin
이로 인해 bash
연결된 표준 입력 스트림에서 쉘 명령이 읽혀집니다 curl
. 스크립트에서 위치 매개변수로 액세스할 수 있는 두 개의 매개변수 -p
입니다 . 실행 파일 옵션의 끝을 나타내는 데 admin
필요합니다 .--
bash
한 줄 스크립트를 사용하여 테스트합니다 script.sh
.오직실행 printf '"%s"\n' "$@"
(따옴표로 묶인 명령줄 인수를 별도의 줄에 출력) 우리는 귀하를 대신하여 다음 명령을 cat script.sh
실행 합니다.curl
$ cat script.sh| bash -s -- -p admin
"-p"
"admin"
스크립트에 대화형 작업이 필요한 경우 표준 입력에서 스크립트 자체를 읽을 수 없습니다. 대신 파일 이름으로 스크립트를 제공하세요.
$ bash <( curl -Ls <git-script-path> ) -p admin
이것이 바로 귀하의 질문에 있는 내용입니다. 이를 위해서는 현재 쉘이 사용법을 이해해야 한다는 점에 유의하십시오 <( ... )
.
답변2
이 작업은 별도의 단계로 수행할 수 있습니다. 먼저 스크립트를 가져와서 파일에 넣습니다.
curl -sL https://...git > script.sh
실행 가능하게 만드세요:
chmod +x script.sh
매개변수를 사용하여 실행합니다.
./script.sh -p admin
개인 여행자로서:
curl -sL https://...git > script.sh && chmod +x script.sh && ./script.sh -p admin
스크립트를 영구적으로 저장하고 싶지 않다면 이렇게 할 수 있습니다.
tmpFile=$(mktemp) && curl -sL https://...git > $tmpFile && chmod +x $tmpFile && $tmpFile -p admin && rm $tmpFile
답변3
스크립트에 인수를 전달하려면 명령줄에 인수를 추가하면 됩니다.
bash <(curl -Ls <git-script-path>) -p admin
매개변수만 표시하는 명령의 예:
$ bash <(echo 'echo args: "$@"') -p admin
args: -p admin