我正在制作一个bash脚本来向已启动的程序发送命令,我在互联网上创建的唯一方法是通过named pipes。
是否有更简单的方法在同一个脚本中完成所有操作?因为命名管道的问题是我必须有3个脚本,一个用于管理程序,另一个用于从main发送信息,然后读取器将信息解析到程序(如果我正确理解上面的链接)。
这是一个问题,因为经理必须打电话给其他人,因为我需要读者接收一系列文件作为输入,我发现没有办法这样做,如果你知道如何请answer this other question.
谢谢
--- 26/01/2012 ---
卡尔发帖后我试过
#!/bin/bash
MUS_DIR="/home/foo/dir/music"
/usr/bin/expect <<-_EOF_
spawn vlc --global-key-next n $MUS_DIR
sleep 5
send 'n'
sleep 5
send "n"
_EOF_
但它不起作用,它只是生成vlc但它没有跳过这首歌
答案 0 :(得分:0)
您可能需要查看expect(1)
。
答案 1 :(得分:0)
有关您要与之通信的程序的更多详细信息将非常有用。
基本上你只需要某种进程间通信。可以使用文件/管道/信号/插座。写入脚本中的特定文件,然后发送程序中断,以便它知道检查文件,例如。
取决于您选择的语言,以及您可以花多少时间在这个/这个项目有多大。您可以让启动的程序使用一个线程来侦听TCP数据包的端口并对它们作出反应。然后在您的bash脚本中,您可以netcat信息,或发送带有curl的HTTP POST。
您确定脚本无法启动应用程序吗?允许脚本只传递参数或定义一些环境变量。