system (“echo * toto”) retorna um erro

0

quando eu testo este comando: system ("echo * > toto") (o arquivo contém)

Este erro é retornado: bash: syntax error near unexpected token "/ bin / echo x" ''

e eu não entendo o porquê. Agradeço antecipadamente por seus conselhos.

    
por user3581976 30.06.2014 / 17:49

1 resposta

0

Isso pode fornecer informações sobre o que está acontecendo:

$ echo * | tr ' ' '\n' | sort >toto_a

$ ls -d * | tr ' ' '\n' | sort >toto_b
ls: cannot access VirtualBox: No such file or directory
ls: cannot access VMs: No such file or directory

$ diff -u0 toto_a toto_b
--- toto_a  2014-06-30 18:50:41.939160184 +0200
+++ toto_b   2014-06-30 18:50:45.571160103 +0200
@@ -34,2 +33,0 @@
-VirtualBox
-VMs 

... agora isso está assumindo que "system ()" inicia uma sessão bash para echo * >toto

Para obter resultados mais previsíveis, pode-se usar system("bash -c 'echo * > toto') e talvez adicionar um caminho absoluto a toto .

    
por Hannu 30.06.2014 / 18:56