我想将表达式('if' 语句)的输出重定向到文件中。例如,我想将“./primitives”的输出重定向到一个文件中,其中“if”语句的表达式是“./primitive”,类似于:
if ./primitives 1>> output.txt ; then
echo "primitives OK. " | tee -a output.txt
fi
上面的行不通,所以从:
if ./primitives ; then
echo "primitives OK. "
fi
如何将 './primitives' 的输出保存到文件中,然后如果 './primitives' 正确执行,则仅回显字符串“primitives OK.”?
作为奖励点,如果正确执行,我将如何仅重定向附加到文件“output.txt”的“./primitives”的 STDOUT,然后将“primitives OK.”打印到控制台和附加到文件中?但是如果 './primitives' 没有正确执行,不要打印任何东西到 'output.txt' 并且只打印 STDERR 到控制台?
还是我以错误的方式看待整个问题?
谢谢
编辑:
当前脚本和输出是:
脚本:
#!/bin/bash
if ./compile.sh; then
echo "Compile OK. " | tee output.txt
if ./primitives 1>> output.txt ; then
echo "primitives OK. " | tee -a output.txt
fi
if ./composites 1>> output.txt ; then
echo "composites OK. " | tee -a output.txt
fi
fi
当前控制台输出:
Compile OK.
所需的控制台输出:
Compile OK.
primitives OK.
composites OK.