Quantos comandos podem ser enfileirados com operadores de controle?

6

Estive lendo sobre operadores de controle e fiquei me perguntando se havia um limite para quantos comandos você poderia alinhar com operadores de controle, como || , && e ; .

Além disso, existe um arquivo de configuração em algum lugar onde isso pode ser regulado?

PS: não sei ao certo como marcar isso.

    
por Adam Jensen 06.08.2014 / 03:27

2 respostas

7

Não há realmente; contanto que a memória do seu computador possa manipular a fila, o shell deve fazer o melhor possível. De acordo com o POSIX :

The shell shall read its input in terms of lines from a file, from a terminal in the case of an interactive shell, or from a string in the case of sh -c or system(). The input lines can be of unlimited length. These lines shall be parsed using two major modes: ordinary token recognition and processing of here-documents.

Basicamente, todos esses || && juntos formam uma única linha de entrada para o analisador do shell, porque ele precisa analisar os tokens para cada lista de comandos antes de avaliar e executar os comandos simples constituintes da lista. .

Uma vez eu já falei sobre algo como aqui - e há muitos exemplos de comandos detalhando como o analisador funciona (ou pelo menos como eu entendo que funciona) .

    
por 06.08.2014 / 03:35
0

Eu acredito que você vai encontrar o limite que você encontra não é o número de comandos, mas o tamanho do buffer de comando sh. Nos sistemas Linux atuais, acredito que o tamanho seja de cerca de 64 K caracteres.

    
por 06.08.2014 / 04:14