Odpowiedzi:
Wierzę, że to, czego szukasz, jest -s
opcją. Za pomocą -s
możesz przekazać argumenty do skryptu.
Jako obojętny przykład ilustrujący to:
$ echo 'echo 1=$1' | bash -s -- Print
1=Print
Tutaj widać, że skrypt podany na stdin otrzymuje parametr pozycyjny Print
. Twój skrypt wymaga -u UUID
argumentu, który można również uwzględnić:
$ echo 'echo arguments=$*' | bash -s -- -u UUID print
arguments=-u UUID print
W twoim przypadku:
curl -fsSL http://git.io/vvZMn | bash -s -- print
Lub,
curl -fsSL http://git.io/vvZMn | bash -s -- -u UUID print
Jak zauważył Stephen Harris, pobranie skryptu i wykonanie go, niewidoczne dla wzroku, stanowi problem bezpieczeństwa.
Jeśli twój system ma /dev/stdin
, możesz użyć
$ echo 'echo 1=$1' | bash /dev/stdin print
1=print
Czy nie to zrobić:
$ echo 'echo 1=$1' | bash /dev/stdin -- print
1=--
Jeśli chcesz użyć --
, zrób to:
$ echo 'echo 1=$1' | bash -- /dev/stdin print
1=print
print
? Wyświetlać uruchamiane polecenia? Jeśli tak, spróbujbash -x
. Uwaga: Tacurl | bash
procedura jest ogromna dziura bezpieczeństwa; nie zobaczysz, co zostanie uruchomione, dopóki serwer nie zostanie włożony.