Я запускаю программу на C из скрипта bash и хотел бы захватить последнюю строку вывода и код выхода. Вот что я сделал:

echo  output=$(echo $op | ./compute)
echo  $output
echo "$output"

Оба выхода не сохраняют разрывы строк. Я думал об использовании tail -1 но это меняет код выхода, который важен для меня.

Что я делаю неправильно?

1 ответ1

0

Вы могли бы использовать $? переменная, в которой хранится возвращаемое значение последнего запуска команды.

Кроме того, чтобы сохранить разрывы строк, вам нужно использовать кавычки ("") при чтении вывода, а не после:

# Save your C program's whole output (with newlines)
output="$(echo $op | ./compute)"
# Print exit code
echo $?
# Print the last line of your program's output
echo $(echo "$output" | tail -1)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .