La réponse à la question est d'utiliser l' read
commande.
Assurez-vous que tous ces autres réponses montrer des façons de ne pas faire ce que l'OP posé, mais qui a vraiment vis le reste d'entre nous qui ont cherché pour l'OP de la question.
Voici comment vous le faites...
Commande:
# I would usually do this on one line, but for readability...
series | of | commands \
| \
(
read string;
mystic_command --opt "$string" /path/to/file
) \
| \
handle_mystified_file
Voici ce qu'il fait et pourquoi il est important:
- Imaginons que l'
series | of | commands
, c'est très compliqué de la série de canalisations de commandes.
-
mystic_command
est peut accepter stdin que le fichier, mais pas l'option arg , par conséquent elle doit venir comme une variable**
-
read
prend stdin et la place dans la variable $string
- Mettre la
read
et de la mystic_command
en un "sous-shell" par parenthèse n'est pas nécessaire, mais le fait couler comme une conduite continue comme si les 2 commandes dans un script séparé de fichier.
** Il y a toujours une alternative, et dans ce cas, l'alternative est moche et illisible:
mystic_command --opt "$(series | of | commands)" /path/to/file | handle_mystified_file
...par rapport à...
series | of | commands | (read string; mystic_command --opt "$string" /path/to/file) | handle_mystified_file
...qui est tout à fait chronologique et logique.