首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将stdin重定向到bash中的文件

如何将stdin重定向到bash中的文件
EN

Stack Overflow用户
提问于 2016-03-30 15:38:26
回答 6查看 42.3K关注 0票数 20

考虑下面这个非常简单的bash脚本:

代码语言:javascript
运行
复制
#!/bin/bash
cat > /tmp/file

它会将你的管道重定向到一个文件中。例如:

代码语言:javascript
运行
复制
echo "hello" | script.sh

"hello“将出现在文件/tmp/file中。这很管用..。但似乎应该有一种不使用"cat“的本地bash方式来实现这一目的。但我搞不懂。

注意:

  1. 一定是在剧本里。我希望脚本在之后对文件内容进行操作。
  2. 它必须在一个文件中,在我的例子中,后面的步骤涉及一个只从文件中读取的工具。
  3. 我已经有了一种很好的方法来做这件事--只是它看起来像是一个黑客。有本土化的方式吗?比如"/tmp/file <0“或"0> /tmp/file”。我以为bash会有一个本地语法来做这个..。
EN

Stack Overflow用户

发布于 2016-03-30 15:40:57

你为什么不直接

代码语言:javascript
运行
复制
GENERATE INPUT | (
    # do whatever you like to the input here
)

但是,有时,特别是当您想先完成输入,然后对修改后的输出进行操作时,您仍然应该使用临时文件:

代码语言:javascript
运行
复制
TMPFILE="/tmp/fileA-$$"
GENERATE INPUT | (
    # modify input
) > "$TMPFILE"
(
     # do something with the input from TMPFILE
) < "$TMPFILE"
rm "$TMPFILE"
票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36313562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档