有没有一种方法可以将 bash 命令的输出保存到 bash 中的 "file/variable" 而无需在您的目录中创建文件
Is there a way to save output from bash commands to a "file/variable" in bash without creating a file in your directory
我正在编写执行类似于 ./script > output.txt
的命令,以便我可以在以后的脚本中使用这些文件,例如 ./script2 output.txt otherFile.txt
> output2.txt。我在脚本末尾将它们全部删除,但是当我测试某些东西或调试时,很难搜索我在脚本中创建的所有子目录和文件。
只创建一个隐藏文件是最好的选择吗?
一如既往,有很多方法可以做到这一点。如果你想完全避免使用文件,你可以将命令的输出 (STDOUT
) 保存在一个变量中,然后使用 <()
运算符将其作为文件传递给下一个命令:
output=$(cat /usr/include/stdio.h)
cat <(echo "$output")
或者,您可以在单个命令行中执行此操作:
cat <(cat /usr/include/stdio.h)
这假定下一个命令严格要求输入文件。
我倾向于尽可能避免使用临时文件,以消除在所有情况下都会执行的清理步骤的需要,除非必须处理大量数据。
我正在编写执行类似于 ./script > output.txt
的命令,以便我可以在以后的脚本中使用这些文件,例如 ./script2 output.txt otherFile.txt
> output2.txt。我在脚本末尾将它们全部删除,但是当我测试某些东西或调试时,很难搜索我在脚本中创建的所有子目录和文件。
只创建一个隐藏文件是最好的选择吗?
一如既往,有很多方法可以做到这一点。如果你想完全避免使用文件,你可以将命令的输出 (STDOUT
) 保存在一个变量中,然后使用 <()
运算符将其作为文件传递给下一个命令:
output=$(cat /usr/include/stdio.h)
cat <(echo "$output")
或者,您可以在单个命令行中执行此操作:
cat <(cat /usr/include/stdio.h)
这假定下一个命令严格要求输入文件。
我倾向于尽可能避免使用临时文件,以消除在所有情况下都会执行的清理步骤的需要,除非必须处理大量数据。