Ubuntu

如何將stderr和stdout保存到ubuntu中的文件

  • May 20, 2016

當我跑步時

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

引用自:https://serverfault.com/questions/777916