/ / Spawn et redirige la sortie du script bash actuel - linux, bash, redirect

Spawn process et redirige la sortie du script bash en cours - linux, bash, redirect

Comment puis-je générer un nouveau processus d'arrière-plan à partir d'unscript bash et rediriger le stdin du script actuel vers le stdin de ce processus via la redirection fd? Je connais plusieurs méthodes pour obtenir le même effet, par exemple utiliser un canal nommé ou un fichier temporaire, utiliser des coprocs ou exécuter le script complet dans un sous-shell et en rediriger la sortie vers un autre processus, mais je recherche une simple redirection IO d'une ligne depuis le script, de la même manière que je peux le faire: exec 2>&1. En gros, je veux faire quelque chose comme ceci (la façon dont le processus est engendré peut être changée bien sûr):

#!/bin/bash
zenity --text-info & # The process to receive this script"s output
# Do something to redirect this shell"s stdout
# to the background process"s stdin
echo "something" # This should be read by the background process

Réponses:

0 pour la réponse № 1

J'ai trouvé une solution à cette substitution de processus:

#!/bin/bash
# Redirect stdout/stderr of current process to stdin of spawned process
# The >() syntax evaluates to a file descriptor that is connected
# to the new process"s stdin
exec &> >(zenity --text-info)