답변:
나는 당신이 찾고있는 것이 -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가 지적했듯이 보이지 않는 스크립트를 다운로드하여 실행하는 것은 보안상의 문제입니다.
시스템에을 /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
print
여기서 뭘? 실행중인 명령을 표시 하시겠습니까? 그렇다면을 시도하십시오bash -x
. 참고 :이curl | bash
루틴은 방대한 보안 허점입니다. 서버가 pwn 될 때까지 무엇이 실행 될지 알 수 없습니다.