在执行另一个shell实例的bash脚本中处理I / O.

时间:2011-09-02 14:39:20

标签: bash shell

我有一个执行一系列命令的bash脚本。其中一个是自己创建shell的应用程序。如何让我的bash脚本在子shell中执行命令?

示例:

#!/bin/bash
command1
command2
someapp
command3
command4

“someapp”本质上是一个bash shell(由供应商提供 - 在我的控制之外),但它似乎在spawner等待时在另一个进程中生成shell。这导致bash脚本在someapp上等待,直到shell关闭,然后执行命令3和4.我希望这些命令在someapp shell中执行。

任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

大多数shell采用-c参数,允许指定命令。从bash手册页:

  

-c string
  如果存在-c选项,则从字符串中读取命令。如果字符串后面有参数,则将它们分配给位置参数,从$ 0开始。

和......

  

-s
  如果存在-s选项,或者在选项处理后没有参数,则从标准输入读取命令。此选项允许在调用交互式shell时设置位置参数。

因此,我会尝试以下方法:

#!/bin/bash
command1
command2
someapp -c "command3 ; command4"

OR

#!/bin/bash
command1
command2
someapp -s <<-EOF
    command3
    command4
    EOF