在另一个进程内执行命令?

时间:2010-09-19 12:49:14

标签: ruby linux bash ubuntu

我希望能够立即启动流程并向其发送输入。

以Bash为例。

以下代码将进入另一个Bash进程,然后打印“Hello World!”用“退出”

终止进程后,在屏幕上显示
bash
echo "Hello World!"

有没有办法输入bash然后打印“Hello World!” INSIDE那个过程?

我在Ubuntu上使用Ruby和Bash。

更新:此问题并非针对Bash。 Bash只是一个例子。如果有人可以发布处理所有其他二进制文件的答案,那会更好。

3 个答案:

答案 0 :(得分:2)

您可能正在寻找expect工具。

答案 1 :(得分:1)

bash -c 'echo "Hello World!"'

您也可以尝试编写bash script并调用它:

bash ./myscript

或将#!/bin/bash作为first line in a text file,它将像任何其他可执行文件一样使用bash调用:

./myscript

Update0

Bash是一名翻译。还有很多其他的口译员,我强烈建议你看看Python,你可以发送指令,以便轻松地解释这些程序。

您可能也会引用Unix IO-model,在这种情况下,您可能需要通过stdinstdout提出与使用滚边有关的问题。

答案 2 :(得分:0)

%x(some external bash commands)

`ls -1`