shell上:
1表示标准输出
2表示标准错误输出
> 默认为标准输出重定向,与 1> 相同
2>&1 意思是把 标准错误输出 重定向到 标准输出.
>&2意思是把结果输出到和标准错误一样,也就是说,如果之前有定义标准错误重定向到某file文件,那么标准输出也重定向到这个file文件
&>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中
用例子说话:
1. grep da * 1>&2
2. rm -f $(find / -name core) &> /dev/null
上面两例中的 & 如何理解,&不是放到后台执行吗?
牛解:
1.&>file或n>&m均是一个独立的重定向符号,不要分开来理解。
2.明确文件和文件描述符的区别。
3.&>file表示重定向标准输出和错误到文件
set +e和set -e的区别:
set -e:执行的时候如果出现了返回值为非零, 整个脚本就会立即退出
set +e:执行的时候如果出现了返回值为非零将会继续执行下面的脚本