1

bash を使用して、あるコマンドの出力ファイルを 2 番目のコマンドの変数として 1 行で送信するにはどうすればよいですか?

streamer と mutt を使用して、ウェブカメラを使用して写真を撮り、それをメール アドレスに送信しようとしています。以下のとおりですが、前の (ストリーマー) コマンドで作成されたファイルを使用するように mutt に指示する方法がわかりません。

streamer -o image.jpg && echo "email body" | mutt -a (file from previous command) -s Subject -- recipient@email.com
4

2 に答える 2

1

仕組みがわかればstreamer、プロセス置換を使用できます。

echo "email body" | mail -a <( streamer )

シェルは-aオプションのファイル名を提供し、mailそれを読み取って の標準出力にアクセスできますstreamer

mbratchメールを含むパイプラインはstreamer正常に完了するまで実行されないため、それ以外の場合は、で提案されている名前を使用してください。

streamer -o image.jpg && echo "email body" | mail -a image.jpg

または、コマンド ラインに関するある程度の知識を使用して、image.jpg2 回入力することを避けます。

streamer -o image.jpg && echo "email body" | mail -a !#:2

現在のコマンド ラインの 3 番目の単語 (0 から数えて) を再利用してstreamer、出力に使用するファイルの名前を取得します。

于 2013-10-22T14:15:39.260 に答える