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 bit est particulièrement intéressant:
<(openssl ecparam -name secp384r1)
Courir juste:
echo <(openssl ecparam -name secp384r1)
Je reviens /dev/fd/63
Cela semble donc créer un descripteur de fichier temporaire avec le contenu du fichier.
Comment ça s'appelle?
bash
file-descriptors
mikemaccana
la source
la source
git diff --no-index file1 <(cat file2)
échouera avec:error: /dev/fd/63: unsupported file type
. Vous pouvez également voirerror: readlink("/dev/fd/63"): No such file or directory
si l'implémentation crée un lien symbolique vers le canal (apparaît comme un lien rompu pour moi pour une raison quelconque).Réponses:
Cela s'appelle la substitution de processus et 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:
la source