延長したいこの行は、オーディオストリームを録音するために/ usr / bin / mplayerを呼び出します。。
参照スクリプトは並列record.sh
に複数回呼び出すことができ、どのコンテキストでエラーがエラーファイルに書き込まれるかを知る必要があります。
"$file"
だから私の質問は:変数の内容が各行の先頭にも印刷されるようにこの行をどのように変更できますか?
"$mplayer" $playlist $url $mplayerflags -msglevel all=2 -dumpstream -dumpfile "$file" >/dev/null 2>>"$errors" <&2 &
例: 代わりに:
some arbitrary error message0
some arbitrary error message1
some arbitrary error message2
some arbitrary error message3
some arbitrary error message4
some arbitrary error message5
したい:
/home/homedir/recordings/filelocation1.mp3 some arbitrary error message0
/home/homedir/recordings/filelocation1.mp3 some arbitrary error message1
/home/homedir/recordings/filelocation1.mp3 some arbitrary error message2
/home/homedir/recordings/filelocation1.mp3 some arbitrary error message3
/home/homedir/recordings/filelocation1.mp3 some arbitrary error message4
/home/homedir/recordings/filelocation1.mp3 some arbitrary error message5
答え1
行を変更してこれを行うことはできません。単にmplayerを呼び出す前に、改行なしでファイル名を印刷するだけです。
答え2
たとえば、awk
ファイル名のプレフィックスを各行にパイプすることができます。
"$mplayer" "${playlist[@]}" "$url" "${mplayerflags[@]}" \
-msglevel all=2 -dumpstream -dumpfile "$file" 2>&1 > /dev/null |
F="$file" awk '{print ENVIRON["F"]": "$0}' >> "$errors" &
メモ:
<&2
意味のない内容は削除しました。- 引用符のないパラメータ拡張を修正しました。私の考えには配列でなければならないと
$playlist
思います。$mplayerflags