title: Shell-重定向2>&1的含义解释 date: 2020-7-3 22:27:36 categories:
Shell tags:重定向日常使用的语法: echo "hello" > test.log 或者是: echo "hello" 1>test.log
1.含义:将标准错误输出重定向到标准输出 2. >&是一个整体,不可分开 – 写成2>1是不对的,意思为:将标准错误输出重定向到名为1的文件里 3. 写成2&>1也是错误的
比如: nohub java -jar app.jar >log 2>&1 & 最后一个&为后台执行 为什么2>&1一定要写到>log后面,才表示标准错误输出和标准输出都定向到log中?
本来1---->屏幕(1指屏幕)执行>log后,1---->log(1指向log)执行2>&1后,2---->1 (2指向1,而1指向log,因此2也指向了log))流程:2-->1-->log
再来分析下 nohup java -jar app.jar 2>&1 >log &
本来1----->屏幕 (1指向屏幕)执行2>&1后, 2----->1 (2指向1,而1指向屏幕,因此2也指向了屏幕)执行>log后, 1----->log (1指向log,2还是指向屏幕) 所以这就不是我们想要的结果。流程:
1=屏幕 2---->1 = 2---->屏幕 1=log 2=屏幕简写: &>log >&log
原例子: nohup java -jar app.jar >log 2>&1 & 简写成: nohub java -jar app.jar &>log & nohub java -jar app.jar >&log &
引用:Linux shell中2>&1的含义解释 一个行走的民
更多更好的原创文章,请访问官方网站: 点我就能跳转咯-》https://nothingzh.gitee.io 也可关注“哎呦运维”微信订阅号,随时接受文章推送。