重定向 >,管道 |,管道重定向 tee ,顺序传参 xargs

判断依据:正确输出返回值为0,错误输出返回值不为0

 

1. 重定向: > 

重定向一般是将输出重定向到文本

 将错误重定向到正确重定向: 2>&1

包括:

(正确)覆盖重定向 >

 

 

(正确)追加重定向 >>

 

 

错误覆盖重定向 2>

 

错误追加重定向 2>> 

 

全部覆盖重定向 : &>

 

 

全部追加重定向 &>> 

 

2. 管道: |

管道的作用是传参,将上一个命令的输出传递为下一个命令的文本输入

 

 

3. 管道重定向(三通管道): tee

| tee 会把输出重定向到一个文本,并继续向下传参(| tee无法直接进行错误重定向)

管道正确覆盖重定向 | tee

 管道正确追加重定向 | tee -a

 

 管道全部覆盖重定向:

 管道全部追加重定向:

 

 

常用格式(输出报错,并收集日志):./test.sh 2>&1 1>stdout.log | tee stderr.log

 

 

4. 传参: xargs 

| xargs 会把上一字符串按需切片,逐个传递给下一个命令

-d:定义分隔符(如果未定义,会默认以空格[\s],table[\t],换行符[\n]等不可见字符为分隔符)

-i  {}:定义切片后参数位置

-I {} sh -c ' cmd':参数可多次调用

-E:终止符,遇到此字符后停止任务,输出不包括该片段

-n:定义以多少个字符串(以分隔符为基准)为一个片段

 

cmd | xargs -I {} sh -c 'cp {} "目录路径1" && cp {} "目录路径2"'

 

 

 

 

 

参考文档:https://unix.stackexchange.com/questions/9646/show-only-stderr-on-screen-but-write-both-stdout-and-stderr-to-file

posted @ 2023-06-08 16:10  咿呀哒喏  阅读(29)  评论(0编辑  收藏  举报