이제 다음과 같은 줄이 있습니다.
curl -fsSL http://git.io/vvZMn | bash
스크립트를 다운로드하여 표준 입력 파일로 bash에 전달합니다. 추가 매개변수를 사용하여 이 스크립트를 실행하고 싶습니다 print
.
어쩌면 이런 게 있지 않을까요?
curl -fsSL http://git.io/vvZMn | bash -- print
그러나 이것은 작동하지 않습니다.
답변1
나는 당신이 찾고 있는 것이 -s
옵션이라고 믿습니다. 를 사용하면 -s
매개변수를 스크립트에 전달할 수 있습니다.
이를 설명하기 위한 더미 예제는 다음과 같습니다.
$ echo 'echo 1=$1' | bash -s -- Print
1=Print
여기에서 stdin에 제공된 스크립트에 위치 인수가 제공되는 것을 볼 수 있습니다 Print
. 스크립트에는 -u UUID
매개변수가 필요하며 다음을 포함할 수도 있습니다.
$ echo 'echo arguments=$*' | bash -s -- -u UUID print
arguments=-u UUID print
따라서 귀하의 경우에는 다음과 같습니다.
curl -fsSL http://git.io/vvZMn | bash -s -- print
또는,
curl -fsSL http://git.io/vvZMn | bash -s -- -u UUID print
Stephen Harris가 지적했듯이 스크립트를 다운로드하고 보이지 않게 실행하는 것은 보안 문제입니다.
답변2
시스템에 있는 경우 다음을 /dev/stdin
사용할 수 있습니다.
$ echo 'echo 1=$1' | bash /dev/stdin print
1=print
하다아니요이 작업을 수행:
$ echo 'echo 1=$1' | bash /dev/stdin -- print
1=--
를 사용하려면 --
다음을 수행하십시오.
$ echo 'echo 1=$1' | bash -- /dev/stdin print
1=print