多命令执行符
执行符 | 使用格式 | 效果 |
---|---|---|
; | 命令1;命令2 | 顺序执行,无其他关联 |
&& | 命令1 && 命令2 | 逻辑与: 命令1执行正确,继续尝试执行后续命令(命令2) 命令1执行错误,中止执行命令后续命令(命令2) 一句话:和编程里if的条件判断执行一样 |
|| | 命令1 || 命令2 | 逻辑或: 命令1执行错误,继续尝试执行后续命令(命令2) 命令1执行正确,中止执行命令后续命令(命令2) 一句话:和编程里if的条件判断执行一样 |
管道符“|”
- 管道符(pipe)用“|”这个界定符号表示,如果需要对linux命令的输出结果进行再次处理,就可以使用管道符+管道命令解决。
- 管道符“|”仅能处理由前一个命令执行后传来的正确信息,如果命令执行异常,无法对异常信息进行处理。
管道符的用法格式:
bash命令 | 管道命令
以上用法中提到的“管道命令”,是指该命令必须能够接收标准输出,这样的命令才是管道命令,例如grep,less,head,tail等命令。以下列出部分管道命令的分类。
- 选取命令:cut,grep
- 排序命令:sort,wc,uniq
- 双向重定向:tee
- 字符转换命令:tr,col,join,paste,expand
- 切割命令:split
- 参数代换命令:xargs
例:通过ps命令可以查看系统中的进程,并在返回结果中筛选apache2进程:
ps -aux | grep apache2
对于不能接收收标准输出的命令,例如:echo,使用xargs命令解决
错误示范:(此例打印为空)
echo 111 | echo
正确示范:(此例能正常输出111)
echo 111 | xargs echo
echo "$(cat file.log)" # 解决$()内换行丢失问题