Odpowiedzi:
Wierzę, że to, czego szukasz, jest -sopcją. Za pomocą -smoż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 UUIDargumentu, 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 | bashprocedura jest ogromna dziura bezpieczeństwa; nie zobaczysz, co zostanie uruchomione, dopóki serwer nie zostanie włożony.