カールの出力をファイルにコピー

カールの出力をファイルにコピー

私はraspbianを実行しており、このbashスクリプトを使用して毎分写真を撮ってFTPサーバーにアップロードします。

#!/bin/bash

while [ 1 ]; do
 DATE=$(date +"%Y-%m-%d_%H_%M_%S")
 raspistill -q 10 -th none -o /home/pi/fb/$DATE.jpg
 curl -T /home/pi/fb/$DATE.jpg  ftp://myftpserver --user myuser:mypass >> /home/pi/fb/log.txt
 sleep 60
 echo finished $DATE >> /home/pi/fb/log.txt
done

私が望む出力はファイルcurlに表示されますが、log.txt常にコンソールに印刷されます。なぜそんなことですか?私も試してみましたが、tee何も変わりませんでした。

ベストアンサー1

カールは状態をstdoutの代わりにstderrとして印刷します。同じファイルからstderrをキャプチャするには、次のように追加してstderrをstdoutにリダイレクトする必要があります。2>&1 後ろに標準出力リダイレクト:

curl -T /home/pi/fb/$DATE.jpg  ftp://myftpserver --user myuser:mypass >> /home/pi/fb/log.txt 2>&1

2>&1stdoutとstderrをよりよく理解するのに役立つ考えを刺激する質問について...なぜ初期>>ではなく初期の後にあるのですか?

おすすめ記事