问题标签 [io-redirection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
5809 浏览

linux - 将标准输入和标准输出重定向到管道

我想运行一个程序“A”,让它的输出进入另一个程序“B”的输入,以及标准输入进入“B”的输入。如果程序“A”关闭,我希望“B”继续运行。

我可以轻松地将 A 输出重定向到 B 输入:
./a | ./b

如果我愿意,我可以将 stderr 合并到输出中:
./a 2>&1 | ./b

但我不知道如何将标准输入结合到输出中。我的猜测是:
./a 0>&1 | ./b
但它不起作用。

这是一个不需要我们重写任何测试程序的测试:

如果可能的话,我想只在命令行上使用 bash 重定向来做到这一点(我不想编写一个 C 程序来分叉子进程,并且每次我想将 stdin 重定向到管道时都做任何复杂的事情)。

0 投票
3 回答
977 浏览

linux - 为什么重定向+管道(2>&1 |)合并两个流而不是将stderr移动到stdout?

我读到重定向是从左到右处理的。所以在这个例子中

有人会认为 fd 2 首先被定向到 fd 1,然后 fd 1 被发送到管道。所以 fd 1 和 2 指向不同的地方。

但实际上这里 fd 1 和 2 都指向管道,因为出于某种原因,fd 1 先被发送到管道,然后 fd 2 被发送到 fd 1。为什么在这种情况下从右到左处理重定向?

0 投票
1 回答
490 浏览

php - 语言选择按钮 URL 改编自当前 URL

我们的网站有两种语言版本,捷克语和英语。我们在每个页面的右上角(在 header.php 中)有一个简单的标志,它指向捷克索引的 index_cz.php 和所有页面的英语索引 index.php,无论当前 URL 是什么。

我想要使​​用 PHP 的更复杂的东西,它可以根据当前页面的 URL 更改按钮的 URL。例如:如果当前页面是“new.php”,我希望捷克语按钮现在指向“new_cz.php”,而英文按钮是“new.php”。

包含?id=结尾的页面(具有与该页面关联的任何 id)使用单独的 header.php 并从数据库中引用适当的 id,例如:

你能想出合适的代码来处理标准的 php 页面吗?非常感谢!

0 投票
6 回答
200619 浏览

bash - 将字符串发送到标准输入

有没有办法在 bash 中有效地做到这一点:

我知道我可以像这样通过管道输出 echo 的输出:

0 投票
4 回答
1137 浏览

linux - Bash 脚本不会将输入重定向到子进程

这是我正在编写的脚本的简化示例(不能按原样工作)。

我想将 STDOUT 从我的脚本定向到子进程的 STDIN。

在下面的示例中,我正在向 STDOUT 写入“测试”,并希望它能够到达最终将其写入文件输出的子进程。

0 投票
9 回答
1186785 浏览

linux - 将所有输出重定向到 Bash 中的文件

我知道在 Linux 中,要将输出从屏幕重定向到文件,我可以使用>tee. 但是,我不确定为什么部分输出仍然输出到屏幕而不写入文件。

有没有办法将所有输出重定向到文件?

0 投票
1 回答
8379 浏览

c# - 可重复地将输入输入到过程的标准输入

我有一个维护状态的(C#)控制台应用程序。可以通过控制台向应用程序提供各种输入来更改状态。我需要能够为应用程序提供一些输入,然后读取输出冲洗并重复。

我创建了一个新进程并完成了重定向输入/输出的所有正常工作。问题是,在我发送输入并调用ReadLine()标准输出之后,在我调用标准输入之前它没有返回值,Close()之后我无法再写入输入流。

如何在仍接收输出的同时保持打开输入流?

我从中重定向 IO 的控制台应用程序非常简单。它使用从控制台读取Console.Read()并使用Console.Write(). 我确定这些数据是可读的,因为我有另一个应用程序使用标准输出/输入(不是用 .NET 编写)从中读取数据。

0 投票
3 回答
1549 浏览

linux - linux shell流重定向直接运行命令列表

我有这个 svn 项目...获取未添加文件的列表(在我的情况下,数百个):

输出

我最近被介绍给 sed... 所以现在我有一个我想运行的命令列表

输出

我意识到我可以将它通过管道传输到文件中

但我想避免写入临时文件。有没有办法将它传递给这样的命令:

0 投票
1 回答
211 浏览

shell - 从 ant 任务打开数据库外壳?

我一直在做一个 Python/Django 项目,我刚刚发现了 './manage.py dbshel​​l' 命令。它会读取您的配置文件以获取数据库凭据并为您启动一个数据库 shell。

在底层,Django 使用 Python os.execvp (http://docs.python.org/library/os.html#os.execvp) 函数。我无法在 Java/Ant 中找到任何类似的东西,但我确实发现您可以将正在运行的进程重定向到您的 TTY (mysql > tty),但尝试为此创建任务似乎不起作用。

当我运行这个任务时,我没有得到数据库外壳,并且在当前目录中创建了一个名为“not a tty”的文件。

有没有人对我如何从 ant 启动交互式过程有任何其他想法?

0 投票
0 回答
559 浏览

c++ - 如何使用命名管道生成子进程并重定向其 STD IO?

我需要生成一个子进程并通过 STD IO 与它交谈。我想使用命名管道来做到这一点。我正在编写的应用程序(产生进程)是用 C++ 编写的。

微软给出了一个很好的例子 (http://msdn.microsoft.com/en-us/library/ms682499%28v=vs.85%29.aspx) 如何使用匿名管道进行上述操作,并提到重定向也可以是使用命名管道完成。

但是在他们提供的示例中,仅用命名管道替换匿名管道是行不通的。(我将 CreateNamedPipe() API 返回的句柄分配给用于生成子进程的 STARTUPINFO 结构的 hStdInput、hStdOutput 成员。)

这样做的正确方法是什么?一个示例代码片段会很棒。

注意:我无法修改子进程行为。