【问题标题】:Is there a way to save output from bash commands to a "file/variable" in bash without creating a file in your directory有没有办法将 bash 命令的输出保存到 bash 中的“文件/变量”而不在目录中创建文件
【发布时间】:2017-01-25 18:36:57
【问题描述】:

我正在编写类似于./script > output.txt 的命令,以便我可以在以后的脚本中使用这些文件,例如./script2 output.txt otherFile.txt > output2.txt。我在脚本末尾将它们全部删除,但是当我测试某些东西或调试时,搜索我在脚本中创建的所有子目录和文件很棘手。 最好的选择只是创建一个隐藏文件吗?

【问题讨论】:

  • 你有mktemp吗?
  • @dawg 我不确定,我以前没听说过
  • 如果您有 GNU 核心实用程序或在 Linux 上,这是软件包的一部分。否则,只需在/tmp 上创建一个目录(如果您愿意,可以隐藏)并使用它。

标签: bash output hidden hidden-files


【解决方案1】:

与往常一样,有很多方法可以做到这一点。如果您想完全避免文件,可以将命令的输出 (STDOUT) 保存在变量中,然后使用 <() 运算符将其作为文件传递给下一个命令:

output=$(cat /usr/include/stdio.h)
cat <(echo "$output")

或者,您可以在单个命令行中执行此操作:

cat <(cat /usr/include/stdio.h)

这假定下一个命令严格要求输入文件。

我倾向于尽可能避免使用临时文件,以消除在所有情况下都会执行的清理步骤的需要,除非必须处理大量数据。

【讨论】:

    猜你喜欢
    • 2018-08-16
    • 2012-03-21
    • 2012-08-14
    • 1970-01-01
    • 2021-12-03
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    相关资源
    最近更新 更多