0

假设我从 Linux 命令行发出命令。这将导致 Linux 创建一个新进程,并假设该进程希望接收来自用户的命令。

例如:我将运行一个 python 脚本 test.py,它将接受来自用户的命令。

$蟒蛇测试.py

测试>添加控制器(192.168.56.101)

添加了控制器

测试>

我的问题是我可以编写一个脚本进入命令行(TEST>)并发出命令吗?据我所知,如果我编写一个脚本来运行多个命令,它将等待第一个进程退出,然后再运行下一个命令。

问候,

维奈派 BH

4

3 回答 3

1

你应该看看expect。它是一种工具,旨在使用户与需要它的命令进行自动化交互。手册页解释了如何使用它。

似乎还有pexpect,一个类似功能的 Python 版本。

于 2013-09-03T17:55:51.703 回答
1

假设 Python 脚本正在从标准输入读取它的命令,您可以使用管道或重定向将它们传入:

$ python test.py <<< 'addController(192.168.56.101)'

$ echo $'addController(192.168.56.101)\nfoo()\nbar()\nbaz()' | python test.py

$ python test.py <<EOF
addController(192.168.56.101)
foo()
bar()
baz()
EOF
于 2013-09-03T18:03:36.393 回答
0

如果您不介意在将控制权返回给程序之前等待调用完成(一次一个),您可以使用subprocess库。如果你想开始运行一些东西而不是等待它完成,你可以使用这个multiprocessing库。

于 2013-09-03T17:49:33.077 回答