Unix输出重定向

时间:2015-04-14 08:31:54

标签: shell unix scripting

我有一个脚本,提示用户选择'y'或'n'等选项。 如果选择“y”,则脚本继续执行,如果选择“n”,则停止。

我希望将此文件的输出重定向到日志文件。所以在命令下面使用: -

./script stop >> script_RUN.log 2>&1

问题是,脚本开始运行但没有提示询问'y'或'n'等选项 它正在写入script_RUN.log。

如何让脚本提示用户输入选项并将进一步执行重定向到script_RUN.log?

2 个答案:

答案 0 :(得分:2)

您可以尝试使用tee命令。

./script stop | tee script_RUN.log

注意:

仅保存程序的输出。

修改

如果您不想在控制台上看到输出,只需将其重定向到/dev/null

例如:

 ./script stop | tee script_RUN.log > /dev/null

以上行会将文件写入日志,但在控制台上 NOT 打印输出

答案 1 :(得分:1)

这就像真的一样。您从一开始就重定向stdout和stderr输出。相反,您应该在提示后尝试在脚本中重定向它。我认为这对你有帮助:

redirect COPY of stdout to log file from within bash script itself