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