0

起動したプログラムにコマンドを送信する bash スクリプトを作成しています。インターネット上で確立した唯一の方法は、名前付きパイプを使用することでした。

同じスクリプト内ですべてを行う簡単な方法はありますか? 名前付きパイプには、プログラムを管理するためのスクリプト、メインから情報を送信するためのスクリプト、および情報をプログラムに解析するためのリーダーの 3 つのスクリプトが必要であるという問題があるため (上記のリンクを正しく理解していれば)。

リーダーがファイルの配列を入力として受け取る必要があり、そうする方法が見つからなかったので、マネージャーが他の人を呼び出さなければならないので、これは問題です。この他の質問に答えてください。

ありがとうございました

--- 2012/01/26 ---

カールの投稿の後、私は試しました

#!/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を生成するだけですが、曲をスキップしません

4

2 に答える 2

0

あなたはチェックアウトしたいかもしれませんexpect(1)

于 2013-01-12T00:57:29.300 に答える
0

あなたが通信したいプログラムについてのより多くの詳細は役に立つでしょう。

基本的に、必要なのはある種のプロセス間通信だけです。ファイル/パイプ/信号/ソケットを使用できます。スクリプト内の特定のファイルに書き込み、プログラムに割り込みを送信して、たとえばファイルをチェックするようにします。

選択した言語、およびこれに費やすことができる時間/このプロジェクトの規模によって異なります。起動したプログラムにスレッドを使用させて、ポートでTCPパケットをリッスンし、それらに反応させることができます。次に、bashスクリプトで情報をネットキャットするか、curlを使用してHTTPPOSTを送信します。

スクリプトでアプリケーションを起動できないのは確かですか?スクリプトが引数を渡すか、いくつかの環境変数を定義できるようにします。

于 2013-01-12T01:30:38.913 に答える