我想将表达式('if'语句)的输出重定向到文件中。例如。我想“./primitives'的输出重定向到一个文件中,其中表达的‘如果’语句是” ./primitive”,是这样的:BASH评估输出重定向
if ./primitives 1>> output.txt ; then
echo "primitives OK. " | tee -a output.txt
fi
以上将无法工作,所以从开始:
if ./primitives ; then
echo "primitives OK. "
fi
我怎么“./primitives'的输出到一个文件,然后只能随声附和字符串‘原始人确定’。如果” ./primitives'正确执行?
对于加分,我怎么会重定向的唯一标准输出” ./primitives'附加到文件‘output.txt的’如果执行正确,然后打印‘元确定。’到控制台和附加到两个文件?但是,如果'./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.
不是,请参阅上面的编辑为什么不是 – dje1990 2013-02-24 20:33:52
是否将'primitives'的输出附加到'output.txt'?如果是这样的话,看起来'primitives'正在退出时带有一个非零的退出代码,从而阻止执行'if'语句的主体。 – chepner 2013-02-24 20:40:19
'primitives'正在执行零代码正确退出,但是echo不会在output.txt或控制台输出,所以也许我使用了'tee'错误?任何想法?我会有一个谷歌。由于 – dje1990 2013-02-24 20:43:31