【问题标题】:Redirect Output in Bash在 Bash 中重定向输出
【发布时间】:2014-04-22 18:37:49
【问题描述】:

我的目标是编写一个脚本,将 bash 命令的输出重定向到一个新文件夹。 我正在使用的命令生成一个输出,其中包含几个不同的文件和文件类型、一些文件夹等。我对此比较陌生,并且很困惑,因为当我希望输出时,我知道当它很简单时很容易做到比如这样:

echo "blah blah" > /some/location/file.txt

但我遇到麻烦的地方是尝试用未知名称重定向多个不同的东西。 (即在上面的示例中,如果我不知道输出的标题应该是 file.txt 甚至是它的文本) 非常感谢您的帮助

【问题讨论】:

  • 多个输出进入同一个文件?使用下面的答案 + 考虑将 > 替换为 >>

标签: bash redirect output


【解决方案1】:

> 后面的单词经过了通常的扩展,因此您可以编写如下代码

output_file=/some/location/file.txt

echo "blah blah" > "$output_file"

无论output_file 的值如何,它都会起作用。

【讨论】:

  • 到目前为止我还没有理解这个问题。你是否? :)
  • 疯狂猜测 :) 评论“......甚至它的 [原文] 文本”让我觉得担心的是代码将在 Windows 下运行,所以使用的文件扩展名很重要,并且所以文件名需要动态正确生成。
【解决方案2】:

如果您正在运行的命令正在生成多个具有当前工作目录相对路径的文件,处理它的最简单方法是创建一个单独的目录并从那里运行它。

例如,如果您想运行命令 10 次并且不让文件相互破坏,您可以这样做:

for run in `seq 1 10`; do mkdir $run; pushd $run; mycommand; popd; done

这将创建十个目录,并且该命令可能会将其输出放入它正在运行的目录中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2013-07-31
    • 2011-07-10
    • 1970-01-01
    • 2017-06-14
    • 2012-04-04
    • 1970-01-01
    相关资源
    最近更新 更多