我正在从 bash 脚本运行 C 程序,并想捕获最后一行输出和退出代码。这是我所做的:
echo output=$(echo $op | ./compute)
echo $output
echo "$output"
两种输出均不保留换行符。我考虑过使用,tail -1
但这会改变退出代码,这对我来说很重要。
我究竟做错了什么?
答案1
您可以使用$?
变量来存储上次运行的命令的返回值。
""
此外,为了保留换行符,您需要在读取输出时使用引号( ),而不是在之后:
# 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)