Я пытаюсь передать вывод из echo в команду, используя метод spawn_command_line_sync
GLib. Проблема, с которой я столкнулся, заключается в том, что echo интерпретирует всю команду как аргумент.
Чтобы лучше объяснить, я запускаю это в своем коде:
string command = "echo \"" + some_var + "\" | command";
Process.spawn_command_line_sync (command.escape (),
out r, out e, out s);
Я ожидал бы, что переменная будет передана в канал, и команда будет запущена с данными, переданными по конвейеру, однако, когда я проверяю результат, он просто выводит все после эха, как это:
"some_var's value" | command
Я думаю, я мог бы просто использовать класс Posix
для запуска команды, но мне нравится иметь значения result, error и status для прослушивания, которое обеспечивает метод spawn_command_line_sync
.