我有一个在ubuntu服务器上作为进程运行的应用程序。这个应用程序有命令行gui,允许我输入命令,然后按回车键,命令运行。我能够编写进程id的确定脚本。然后我编写以下脚本来发送命令:
# echo "command" > /proc/<PROCESSID>/fd/0
我尝试了各种
# echo "command" > /proc/<PROCESSID>/fd/0
# echo -e "command\r" > /proc/<PROCESSID>/fd/0
# echo -e "command\c" > /proc/<PROCESSID>/fd/0
# echo -e "\015" > /proc/<PROCESSID>/fd/0
我知道程序正在获取命令但不执行它。我怀疑这是因为我没有按下输入,可能命令行期待这个。有人可以告诉我如何使用这个错误或更好的选择吗?
答案 0 :(得分:5)
你做不到。 / proc / fd / 0(通常)不是您可以写入并提供进程输入的管道。
你需要做的是调用进程,其stdin来自管道(或套接字等),以便你可以将内容写入其中。
命名管道可以在这里工作(参见mknod(1)或mkfifo(3))。
否则,您需要一个位于其前面的控制程序,并使用一对管道与之交谈。
答案 1 :(得分:2)
在不知道具体细节的情况下,您可能需要:expect