我有一个执行一系列命令的bash脚本。其中一个是自己创建shell的应用程序。如何让我的bash脚本在子shell中执行命令?
示例:
#!/bin/bash
command1
command2
someapp
command3
command4
“someapp”本质上是一个bash shell(由供应商提供 - 在我的控制之外),但它似乎在spawner等待时在另一个进程中生成shell。这导致bash脚本在someapp上等待,直到shell关闭,然后执行命令3和4.我希望这些命令在someapp shell中执行。
任何指针都会受到赞赏。
答案 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