Obtendo a saída de outro script enquanto preserva os quebras de linha

0

Estou executando um programa em C a partir de um script bash e gostaria de capturar a última linha de saída e o código de saída. Foi o que eu fiz:

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

Ambas as saídas não preservam as quebras de linha. Pensei em usar tail -1 , mas isso muda o código de saída que é importante para mim.

O que estou fazendo de errado?

    
por user1326293 01.12.2015 / 19:29

1 resposta

0

Você pode usar a variável $? , que armazena o valor de retorno do último comando executado.

Além disso, para preservar as quebras de linha, você precisa usar as aspas ( "" ) ao ler a saída, e não depois:

# 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)
    
por 01.12.2015 / 21:04