Ubuntu
如何將stderr和stdout保存到ubuntu中的文件
當我跑步時
echo "invalid crt" | openssl x509 -noout -modulus | openssl md5 &>> error.log
這顯示以下錯誤
unable to load certificate 139903857870496:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
和error.log中的“(stdin)= d41d8cd98f00b204e9800998ecf8427e”內容
我想保存帶有錯誤的標準輸入(如何將終端錯誤文本也保存到 error.log 中)
我怎樣才能做到這一點 ?
當你這樣做
echo "invalid crt" | openssl x509 -noout -modulus | openssl md5 &>> error.log
第二個 openssl 命令的唯一 stderr 被寫入 error.log。用這個:
echo "invalid crt" | (openssl x509 -noout -modulus | openssl md5) &>> error.log
這樣兩個openssl程序都在一個子shell中執行,並且子shell的stderr與stdout一起重定向到error.log。
使用
cmd &> file.log
:$ blahblah &> /tmp/blah.log $ echo $? 127 $ cat /tmp/blah.log bash: blahblah: command not found
要附加,請使用
cmd >>file.log 2>&1
$ wrongcmd >>/tmp/blah.log 2>&1 $ cat /tmp/blah.log bash: blahblah: command not found bash: wrongcmd: command not found