相关疑难解决方法(0)

在 bash 中回显到 stdout 或文件的优雅解决方案

我有一个 bash 应用程序正在产生一些结果,我想将结果回显stdout到用户选择的文件中。因为我还向屏幕回显了其他交互式消息,所以要求用户>在他想将结果回显到文件时明确使用重定向不是一个选项 (*),因为这些消息也会出现在文件中。

现在我有一个解决方案,但它很难看。

if [ -z $outfile ]
then
    echo "$outbuf"    # Write output buffer to the screen (stdout)
else
    echo "$outbuf" > $outfile  # Write output buffer to file
fi
Run Code Online (Sandbox Code Playgroud)

我试图让变量$outfile等于stdout, to&1或者其他东西,但它只会写入具有该名称的文件,而不是实际写入标准输出。有没有更优雅的解决方案?

(*) 我可以作弊并stderr为此目的使用,但我认为它也很丑陋,不是吗?

bash shell-script stdout

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

bash ×1

shell-script ×1

stdout ×1