Я работаю с bash. У меня есть файл F, содержащий аргументы командной строки для Java-программы, и мне нужно сохранить как выходы программ Java, т. Е. Вывод на стандартный вывод и значение выхода. Хранение стандартных выходных работ осуществляется черезЛибо получить исходное возвращаемое значение из xargs, либо имитировать xargs
cat F | xargs java program > Output
Но xargs не дает доступа к коду выхода программы Java. Итак, я разделил его, дважды запустив программу, один раз для стандартного вывода, один раз для кода выхода, но получение кода выхода и правильное выполнение этого файла кажется невозможным. Можно было бы попробовать
java program $(cat F)
, но это не будет работать, если F содержит, например, «», а именно: один аргумент командной строки для программы, которая является пространством. Проблема заключается в расширении аргумента $ (cat F).
Теперь я не вижу способа обойти эту проблему? Я не хочу «$ (cat F)», так как я хочу, чтобы $ (cat F) расширялся во многие строки --- но я не хочу дальнейшего расширения этих строк.
Если, с другой стороны, были бы лучшие xargs, дающие доступ к исходному значению выхода, что бы решить проблему, но я не знаю об этом.
вам нужен код состояния и вывод в том же файле делать? Откуда вы знаете, где начинается выход следующего файла? – rici
Код состояния, который мне просто нужно сохранить в переменной (в bash-скрипте). –
Как выглядит файл 'F'? Как вы обрабатываете аргументы с пробелом в них? Это один аргумент в строке или ...? – rici