Script de um script que testa um shell [closed]

-3

Eu tenho um shell personalizado e quero testar sua função aritmética. Eu escrevi um script para testá-lo e ele executa a aritmética, mas também está tentando executar o resultado como um programa.

  printf "********************* TEST Arithmetics  ... .\nYou should see the number 4096 below "
    #read _
    valgrind --leak-check=yes ./shell .<< EOF
    $((64 * 64))
    EOF

Resultado: failed to execute 4096: (2: No such file or directory)

= resposta certa concatenada com um bug.

A expressão $((64 * 64)) avaliará se eu executar o teste, mas também receberei uma mensagem de erro. O estranho é que eu só recebo essa mensagem de erro se eu executar o projeto de dentro do JetBrain Clion, eu não entendo no terminal se eu executar meu shell no modo de terminal ao invés de automatizar os testes contra ele.

$ $((64 * 64))
Result = 4096
$ 

Você acha que o erro está no teste ou no shell?

    
por Niklas Rosencrantz 06.05.2016 / 20:19

1 resposta

2

$(( 64*64 )) irá literalmente colocar 4096 na linha de comando e dizer: vá em frente e execute-o. Daí o erro

 failed to execute 4096: (2: No such file or directory)

Se você quiser apenas realizar cálculos sem imprimir, remova $. Se você quiser imprimir, use echo $(( 64*64))

    
por Sergiy Kolodyazhnyy 07.05.2016 / 02:15