一只萌萌小番薯
1、一般来讲,shell命令都是有错误输出的,它会打印在屏幕上,但实际上是标准错误输出文件,如果我不想输出到屏幕,而是写到文件里,我们可以用管道符'>'重定向标准错误输出,比如:我cat一个不存在的文件,会有错误输出,我可以把错误重定向到文件里12345#cat /tmp/aacat: /tmp/aa: No such file or directory#cat /tmp/aa 2>err.log#cat err.logcat: /tmp/aa: No such file or directory2表示标准错误输出。另外,我甚至可以把错误输出放到shell变量里:123#aa=$(cat /tmp/aa 2>&1)#echo $aacat: /tmp/aa: No such file or directory2>&1表示,我把错误输出重定向到标准屏幕输出1上,在赋值给变量aa2、关于如何调试shell脚本很简单1#sh -vx xxxx.sh上述命令会打印shell脚本的执行过程和结果,有助于排错。当然,某些情况下,可能不会有输出(如shell中有函数,可能就不会输出函数里的过程)。