xargsを使用してbashスクリプト内で画面にコマンドを送信するのに問題があります。

xargsを使用してbashスクリプト内で画面にコマンドを送信するのに問題があります。

私は現在、ストリーミング放送ストリームを録画するための単純なbashスクリプトを書いています。出勤して出勤準備をする過程で私のお気に入りの朝放送を30分ほど逃すことになるので、出勤する約15分前に録画を開始するように業務用コンピュータのクローンスケジュールに設定するようにこのスクリプトを作成しました。 。

次のスクリプトの抜粋は機能しません。

echo ${FILEFULLPATH} | xargs -t screen -dmS ${STATION_NAME}Stream mplayer ${STATION_URL} -dumpstream -dumpfile

ただし、実行xargs -t出力は正常に動作します。screen -ls画面にscreen -rコマンドが実際に実行中であることを示します。出力コマンドは次のとおりです。

screen -dmS RadioXStream mplayer http://radiostream.net/ -dumpstream -dumpfile ~/radio/radiostream_06102015-1316.mp3

私はそれを使用し、set -xすべてが大丈夫に見えます。スクリプトの実行後に実行時にscreen -ls生成する必要がある画面はありません。

私はこのコマンドをMinecraftサーバー用に書いた古いスクリプトに基づいています。唯一の主な違いは、相対ディレクトリを引用符で囲むので、ここでファイルパスにxargsを使用することです。'~/radio/file.mp3'

ベストアンサー1

問題は確かにxargsを使用して発生します。すべての変数を変数に入れるのではなく、コマンドラインに貼り付けて問題を解決しました。

screen -dmS ${STATION_NAME}Stream mplayer ${STATION_URL} -dumpstream -dumpfile ${DIRECTORY}${STATION_NAME}_${DATETAG}.mp3

ご意見ありがとうございます。

おすすめ記事