[Bash] : Source la sortie d'une commande


Par exemple dans le cas de kubernetes, si on veut l'autocomplétion. Il faut faire:

kubectl completion bash


En sortie de cette commande c'est le script bash à "sourcer".

On peut faire comme ceci:

source <( kubectl completion bash)
Ce proceder s'appelle "process substitution".
Je vous laisse la partie du man qui en parle:

La substitution de processus n'est disponible que sur les systèmes acceptant le mécanisme des tubes nommés (FIFOs) ou la méthode /dev/fd de noms de fichiers Elle prend la forme <(liste) ou >(liste). La liste de processus est exécutée avec ses entrées et sorties connectée à une FIFO ou à un fichier dans /dev/fd. Le nom de ce fichier est passé en argument à la commande qui sera exécutée comme résultat de cette substitution. Si on utilise la forme >(liste), l'écriture dans le fichier fournira des entrées pour la liste. Si la forme <(liste) est utilisée, le fichier passe en argument devra être lu pour obtenir la sortie de la liste. Sur les systèmes qui le permettent, la substitution de processus est effectuée simultanément au remplacement des paramètres et variables, a la substitution de commande, et à l'évaluation arithmétique.

Commentaires