Agora eu tenho uma linha como esta:
curl -fsSL http://git.io/vvZMn | bash
Ele está baixando o script e passando para o bash como arquivo stdin. Eu gostaria de executar este script com argumentos adicionais print
.
Talvez algo assim?
curl -fsSL http://git.io/vvZMn | bash -- print
Mas isso não funciona.
print
fazer aqui? Exibir os comandos que estão sendo executados? Se sim, tentebash -x
. Nota: essacurl | bash
rotina é uma enorme falha de segurança; você não vê o que será executado até que seu servidor seja instalado.Respostas:
Acredito que o que você está procurando é a
-s
opção. Com-s
, você pode passar argumentos para o script.Como um exemplo fictício para ilustrar isso:
Aqui, você pode ver que o script fornecido no stdin recebe o parâmetro posicional
Print
. Seu script usa um-u UUID
argumento e isso também pode ser acomodado:Então, no seu caso:
Ou,
Como Stephen Harris apontou, baixar um script e executá-lo, sem ser visto, é uma preocupação de segurança.
fonte
Se o seu sistema possui
/dev/stdin
, você pode usarVocê não fazer isso:
Se você deseja usar
--
, faça o seguinte:fonte