La syntaxe du shell pour ouvrir un file pour écrire et utiliser son descripteur de file est:
exec 3>output.log
Avec bash et zsh vous pouvez aussi écrire:
exec 13>output.log
Ainsi, plus tard dans votre script, vous pouvez redirect la sortie comme ceci:
generate-partx >&3 generate-partx >&13
Et pour les fermer:
exec 3>&- exec 13>&-
Le ksh original (testé 88 et 93) ne semble supporter les descripteurs de files de 0 à 9 qu'avec cette syntaxe.
Bien sûr, on pourrait dire que 10 descripteurs de files ouverts devraient être suffisants pour tout le monde et / ou que personne n'utilise plus de ksh.
Mais parfois ce n'est pas et vous êtes.
Ainsi, ma question: Comment ouvrir plus de 10 descripteurs de files dans un script ksh?
En ksh
, vous ne pouvez utiliser qu'un seul chiffre pour le descripteur de file explicite. Avec ksh93r
et ci-dessus, vous pouvez ouvrir plus de 10 descripteurs de files en utilisant le formulaire:
{var}>filename
( bash
et zsh
copié cette fonctionnalité plus tard) .
ksh
choisit le descripteur de file disponible supérieur ou égal à 10, stocke le numéro du descripteur de file dans la variable var
:
$ exec {var1}>/tmp/test1 $ echo "$var1" 10 $ exec {var2}>/tmp/test2 $ echo "$var2" 11