【问题标题】:Bash read file into scriptBash 将文件读入脚本
【发布时间】:2014-01-10 21:32:03
【问题描述】:

好的,我有一个非常奇怪的问题,你们很多人可能会问为什么。

我需要将文件读入脚本并立即输出回新文件。我想更合适的是,我将流式传输到脚本并输出到文件。

我们开发团队的一个 java 进程将调用我的脚本 (script.sh) 并读取一个“文件”和一些变量。

我知道你可以做到以下几点:

./script.sh var1 var2 var3

这将允许您通过 $1 $2 和 $3 访问这些变量

很好,他们将如何将一些东西传递给脚本,但他们还需要读入 XML 文件(但它还不是真正的文件。它只是 java 进程的输出)。我想这就是它的工作方式。

./script var1 var2 var3 < file

基本上,我的脚本需要做的第一件事就是将“文件”输出为file.xml,然后脚本将继续其愉快的方式并开始使用变量并执行它需要做的其他事情。

我假设传递给脚本的文件是标准输入,所以我尝试执行以下操作:

0> file.xml

/dev/stdin > file.xml

但没有任何效果。我认为我只是犯了大的概念错误。有人可以帮忙吗?

谢谢!

【问题讨论】:

  • 你能详细说明一下吗?

标签: bash redirect stdin


【解决方案1】:

使用cat:

cat > file.xml

不带参数,cat 从标准输入读取并写入标准输出。

至于你的概念错误,你没有认为文件描述符仅仅是整数,不能自己做任何工作(比如移动数据)。您需要一个可以从一个读取并写入另一个的进程。

另一个熟悉的移动数据过程是cp,您确实可以使用cp /dev/stdin file.xml,但这是不惯用的并且有一些陷阱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2014-10-26
    • 2013-06-30
    • 2019-06-06
    • 1970-01-01
    • 2022-05-30
    • 2014-10-28
    相关资源
    最近更新 更多