Abrindo mais de 10 descritores de arquivos com ksh

3

A sintaxe do shell para abrir um arquivo para escrever e usar seu descritor de arquivo é:

exec 3>output.log

Com o bash e o zsh, você também pode escrever:

exec 13>output.log

Assim, mais tarde, no seu script, você pode redirecionar a saída assim:

generate-partx >&3
generate-partx >&13

E para fechá-los:

exec 3>&-
exec 13>&-

O ksh original (testado 88 e 93) parece apenas suportar números de descritores de arquivo de 0 a 9 com essa sintaxe.

Claro, pode-se argumentar que 10 descritores de arquivos abertos devem ser suficientes para todos e / ou que ninguém mais está usando o ksh.

Mas às vezes não é e você é.

Assim, minha pergunta: Como abrir mais de 10 descritores de arquivos em um script ksh?

    
por maxschlepzig 17.01.2016 / 09:39

1 resposta

3

Em ksh , você pode usar apenas um dígito para o descritor de arquivo explícito. Com ksh93r e acima, você pode abrir mais de 10 descritores de arquivo usando o formulário:

{var}>filename

( bash e zsh copiou este recurso mais tarde) .

ksh selecionará o descritor de arquivo disponível maior ou igual a 10, armazene o número do descritor de arquivo na variável var :

$ exec {var1}>/tmp/test1
$ echo "$var1"
10
$ exec {var2}>/tmp/test2
$ echo "$var2"
11
    
por 17.01.2016 / 17:10