一、管道运算符
运算符号: 『|』;
用法:command1 | command2
作用: command1 的输出结果,做为command2 的输入结果;
举例:
grep -r "aaa" log.log | wc -l
10
# 指令解析: 从文件『log.log』中查找包含子串『aaa』的行, 然后统计其行数;
# 第一个指令的结果, 做为第二个结果的输入;
# 最终的结果为统计的行数:
二、&& 运算符
运算符号: 『&&』
用法: command1 && command2 && command3 ... && command n
作用:当command1 执行成功了,则执行command2; 当command2执行成功了, 则执行command3 ...
中间,但凡有一个command执行失败了, 则指令结束; 后面的command不再执行;
举例:
cp run.log ../ && rm run.log && echo "success"
success 【成功时,输出】
cp: cannot stat `run.log': No such file or directory 【失败时,输出】
# command1 为 将当前目标文件,拷贝到上一层目录;
# command2 为 删除当前目录的文件;
# command3 为 输出success;
# 当前前一个指令执行成功,则执行后一个指令; 当其中任何一个指令执行失败,则操作结束,不再继续往后走;
三、 || 运算符
运算符: 『||』
用法:command1 || command2 || command3 ... || command n
作用: 挨个执行command, 但凡有一个执行成功,则停止执行;若没有执行成功,则往后走,执行next指令;
举例:
ls run.log &>/dev/null && echo "sucess" || echo "fail"
fail
# 运算优先级,从左到右;
# 当本地目录下存在 run.log , 这执行command2【输出success】;
# 当本地目录下没有存在 run.log, 则不执行command2 ; 该任务执行失败 【这是 && 的作用】
# 当 前面执行失败, 则执行 command3 【这是 || 的作用】