En ce moment, j'ai une doublure comme celle-ci:
curl -fsSL http://git.io/vvZMn | bash
Il télécharge le script et le passe à bash en tant que fichier stdin. Je voudrais exécuter ce script avec un argument supplémentaire print
.
Peut-être quelque chose comme ça?
curl -fsSL http://git.io/vvZMn | bash -- print
Mais ça ne marche pas.
print
faire ici? Afficher les commandes en cours d'exécution? Si oui, essayezbash -x
. Remarque: cettecurl | bash
routine est un trou de sécurité énorme; vous ne voyez pas ce qui sera exécuté tant que votre serveur n'a pas été mis en marche.Réponses:
Je crois que ce que vous recherchez est l'
-s
option. Avec-s
, vous pouvez passer des arguments au script.Comme exemple factice pour illustrer ceci:
Ici, vous pouvez voir que le script fourni sur stdin reçoit le paramètre positionnel
Print
. Votre script prend un-u UUID
argument et qui peut également être adapté:Donc, dans votre cas:
Ou,
Comme l'a souligné Stephen Harris, le téléchargement d'un script et son exécution, à perte de vue, est un problème de sécurité.
la source
Si votre système possède
/dev/stdin
, vous pouvez utiliserNe faites pas ceci:
Si vous souhaitez utiliser
--
, procédez comme suit:la source