exec não funciona com redirecionamento de entrada

0

Estou tentando usar o operador de redirecionamento com o comando exec para inserir dados do arquivo, mas está causando erro

sh-4.3$ cat test                                                                                                                                              
hi this is a test                                                                                                                                             
so wait                                                                                                                                                       
sh-4.3$ exec <test                                                                                                                                            
sh-4.3$ hi this is a test                                                                                                                                     
sh: hi: command not found                                                                                                                                     
sh-4.3$ so wait                                                                                                                                               
sh: so: command not found                                                                                                                                     
sh-4.3$ exit   
    
por Pankaj Pandey 02.12.2016 / 14:21

1 resposta

1

O ponto crucial não é o redirecionamento, mas o conteúdo do seu arquivo. exec executa seu arquivo. Isso significa que ele analisa o conteúdo do seu arquivo e tenta executar os comandos escritos nele. Mas o seu arquivo não contém nenhum comando que o shell conheça.

Ele aparece em hi , mas não existe tal comando. Então, isso diz a você:

sh: hi: command not found

Então, tenta a próxima linha. Ele lê 'so', mas não existe tal comando. Então, isso diz a você:

sh: so: command not found

Se você quiser entregar seu arquivo como entrada para um programa, você precisa colocar o programa em ação de alguma forma. Não jogue apenas os dados no shell e espere que ele descubra por si próprio o que fazer com ele;)

    
por Henning Kockerbeck 02.12.2016 / 14:31