1

我有一个程序,它的界面非常有限(以前工作过的人没有正确开发),因为它是一些正在建设的研究原型,我不知道我是否可以公开命名它,所以让我们称之为程序x

在我编写执行命令时导出正确的环境变量后x,终端提示变为x(例如,类似于键入 mysql 时发生的情况)。

现在我必须在运行程序之前做一些初步的活动x,在这个程序完成它应该做的事情之后,我必须做一些清理和重新安排东西。另外我需要运行的环境下需要运行几条命令x

我已经编写了代码,如果我将它粘贴到终端中,那么它就可以了,但是如果我运行与 shell 脚本相同的代码,那么它会执行 x,然后不执行以下命令。是否有任何解决方法。

我完全困惑如何做到这一点。任何帮助表示赞赏。如果我说得不够清楚,请告诉我,您需要更多信息。

4

2 回答 2

1

你应该看看Expect。它可以为您自动执行重复性任务。

如果您确实调查过它,这可能与您需要的类似:

#!/usr/bin/expect
spawn bash
set fp [open cmdlist r]
while {[gets $fp line] != -1} {
  expect "\\$"
  send "$line\r"
}
于 2012-08-15T01:37:08.937 回答
0

否。如果x允许您指定要执行的命令,或者如果x在通过标准输入输入命令后有某种方式进入交互模式,那么您可以使用其中任何一个。尝试任何其他方式都可能不可靠。

于 2012-08-14T19:56:45.180 回答