Я пытаюсь передать вывод из эха в команду, используя метод spawn_command_line_sync
GLib. Проблема, с которой я столкнулся, заключается в том, что эхо интерпретирует всю команду как аргумент.
Чтобы лучше объяснить, я запускаю это в своем коде:
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
для запуска команды, но мне нравится иметь значения результата, ошибки и состояния для прослушивания, которые предоставляет метод spawn_command_line_sync
.