когда я бегу
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
и содержимое "(stdin) = d41d8cd98f00b204e9800998ecf8427e" в error.log
Я хочу сохранить stdin с ошибкой (как сохранить текст ошибки терминала в error.log тоже)
Как я могу это сделать ?
Когда ты делаешь
echo "invalid crt" | openssl x509 -noout -modulus | openssl md5 &>> error.log
единственный stderr второй команды openssl записывается в error.log. Использовать это:
echo "invalid crt" | (openssl x509 -noout -modulus | openssl md5) &>> error.log
так что оба процесса openssl запускаются в подоболочке, а stderr подоболочки перенаправляется вместе со стандартным выводом в 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