GNU/Linux >> Tutoriels Linux >  >> Linux

La fête ?

Cette réponse sur Security StackExchange utilise une syntaxe bash intéressante pour générer un fichier en ligne :

openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650

Ce morceau est particulièrement intéressant :

<(openssl ecparam -name secp384r1)

En cours d'exécution :

echo <(openssl ecparam -name secp384r1)

Je récupère /dev/fd/63

Cela semble donc créer un descripteur de fichier temporaire avec le contenu du fichier.

Comment cela s'appelle-t-il ?

Réponse acceptée :

C'est ce qu'on appelle la substitution de processus et c'est une fonctionnalité de bash, zsh et ksh (et peut-être d'autres, je ne sais pas). Ce n'est pas POSIX et vous ne devriez pas l'utiliser dans du code portable, mais c'est très utile.

Voici la section pertinente du manuel bash :

3.5.6 Substitution de processus

La substitution de processus est prise en charge sur les systèmes prenant en charge les canaux nommés
(FIFO) ou la méthode /dev/fd de dénomination des fichiers ouverts. Il prend la forme
de

  <(list) 

ou

  >(list) 

La liste de processus est exécutée avec son entrée ou sa sortie connectée à une FIFO ou à un fichier dans /dev/fd. Le nom de ce fichier est passé en tant qu'
argument à la commande actuelle à la suite de l'expansion.
Si la forme>(liste) est utilisée, l'écriture dans le fichier fournira une entrée pour la liste. Si la forme <(list) est utilisée, le fichier passé en argument doit être
lu pour obtenir la sortie de list. Notez qu'aucun espace ne peut apparaître
entre le et la parenthèse gauche, sinon la construction
serait interprétée comme une redirection.

Lorsqu'elle est disponible, la substitution de processus est effectuée simultanément avec
l'expansion des paramètres et des variables, la substitution de commande et l'expansion
arithmétique.


Linux
  1. Personnalisation du shell Bash

  2. Pourquoi le script Bash ne reconnaît-il pas les alias ?

  3. Est-ce que Mv Atomic est sur le F?

  4. Vue complète de l'endroit où la variable de chemin est définie dans Bash ?

  5. Script Bash pour supprimer le fichier le plus ancien d'un dossier ?

Bash :Écrire dans un fichier

Commande de source bash

Bash :ajouter au fichier

35 exemples de scripts bash

La liste des raccourcis clavier Bash utiles

Bash For Loop – Le guide le plus pratique