Система ("echo * > toto") возвращает ошибку

Когда я проверяю эту команду: system("echo * > toto") (файл toto существует)

Эта ошибка возвращается: bash: syntax error near unexpected token"/ bin / echo x" '`

и я не понимаю почему. Заранее благодарю за советы.

1 ответ

Решение

Это может дать представление о том, что происходит:

$ echo * | tr '' '\ n' | сортировать> toto_a

$ ls -d * | tr '' '\ n' | сортировать>toto_b
ls: не может получить доступ к VirtualBox: нет такого файла или каталога
ls: не может получить доступ к виртуальным машинам: нет такого файла или каталога

$ 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 

... теперь предполагается, что "system()" запускает сеанс bash для echo * >toto

Чтобы получить более предсказуемые результаты, можно использовать system("bash -c 'echo * > toto') и, возможно, добавить абсолютный путь к toto,

Другие вопросы по тегам