如何获取shell命令输出的错误信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取shell命令输出的错误信息相关的知识,希望对你有一定的参考价值。
不太明白你表达的意思,是无法看到错误信息还是想保存错误信息?
1、一般来讲,shell命令都是有错误输出的,它会打印在屏幕上,但实际上是标准错误输出文件,如果我不想输出到屏幕,而是写到文件里,我们可以用管道符'>'重定向标准错误输出,比如:
我cat一个不存在的文件,会有错误输出,我可以把错误重定向到文件里
#cat /tmp/aacat: /tmp/aa: No such file or directory
#cat /tmp/aa 2>err.log
#cat err.log
cat: /tmp/aa: No such file or directory
2表示标准错误输出。
另外,我甚至可以把错误输出放到shell变量里:
#aa=$(cat /tmp/aa 2>&1)#echo $aa
cat: /tmp/aa: No such file or directory
2>&1表示,我把错误输出重定向到标准屏幕输出1上,在赋值给变量aa
2、关于如何调试shell脚本
很简单
#sh -vx xxxx.sh上述命令会打印shell脚本的执行过程和结果,有助于排错。当然,某些情况下,可能不会有输出(如shell中有函数,可能就不会输出函数里的过程)。
echo "infomsg" > &1; 标准输出 参考技术B var=`ps -ef | grep oracle` 或者 var=$(ps -ef | grep oracle) 获取系统中关于Oracle的进程的信息。
以上是关于如何获取shell命令输出的错误信息的主要内容,如果未能解决你的问题,请参考以下文章