• 多条命令中的逻辑运算和括号


    1、逻辑或“||”

    运算符格式:command1 || command2

    执行命令时,先执行command1,如果command1执行成功,则跳过命令command2,执行后面的内容;如果command1执行失败才会执行command2.

    用法示例:

    (1)下面是一个读取邮件的例子:

    [zhu@localhost ~]$ mail -f /root/mbox || echo "Permission denied"
    /root/mbox: Permission denied
    Permission denied
    [zhu@localhost ~]$

    普通用户使用mail命令读取root的历史邮件,如果失败,则显示提示信息。然而上面的示例中提示信息有两条,可以使用如下方法屏蔽错误提示:

    [zhu@localhost ~]$ mail -f /root/mbox 2>/dev/null || echo "Permission denied"
    Permission denied
    [zhu@localhost ~]$

    (2)逻辑或在管理和维护系统的过程中很有用。例如测试两个主机的连通性,如果失败则返回提示:

    [root@localhost zhu]# ping 125.25.34.2 -c3 &>/dev/null || echo "Host network connection is lost."
    Host network connection is lost.

    2、逻辑与“&&”

    运算符格式:command1 && command2

    先执行命令command1,如果执行成功,则会继续执行命令command2;如果执行失败,就会跳过command2.

    用法示例:

    (1)例如为移动文件操作添加提示信息:

    [root@localhost zhu]# mv a* test/ && echo "Successfully moved files."
    Successfully moved files.

    (2)在管理和维护系统时,逻辑与可以用于当测试正常时向用户输出提示信息。例如,检查主机服务器是否能正常提供服务并输出提示信息:

    [root@localhost zhu]# wget http://220.181.111.148 &>/dev/null && echo "Host service running."
    Host service running.

    上面命令中使用的命令wget用于检查服务器是否能正常提供服务。

    3、括号

    Linux系统提供了两个括号:圆括号“()”和花括号“{}”。使用方法相同,功能却不一样。

    括号的基本格式:

    (command1;command2;command3…)

    {command1;command2;command3…}

    Linux系统遇到括号时,会按顺序先执行括号内的命令,直到括号内的所有命令执行结束,然后再返回执行其他命令。

    花括号的使用方法与圆括号基本一致,不同的是花括号内的所有命令都会被放入子shell中执行。

    提示:通常将括号与命令逻辑操作符配合使用,以达到执行多条命令的目的。

    用法示例:

    下面是一个使用圆括号监控系统的例子:

    [root@localhost zhu]# ping 222.22.22.22 -c3 &>/dev/null || (echo "Host network connection is lost." | tee network_info;mail -s "network error" root <network_info;rm -rf network_info)
    Host network connection is lost.
  • 相关阅读:
    Java Object类 和 String类 常见问答 6k字+总结
    又长又细,万字长文带你解读Redisson分布式锁的源码
    第三方API对接如何设计接口认证?
    免费正版 IntelliJ IDEA license 详细指南
    ClickHouse性能优化?试试物化视图
    全量同步Elasticsearch方案之Canal
    Canal高可用架构部署
    Spring官方发布新成员:Spring GraphQL
    为什么catch了异常,但事务还是回滚了?
    这几个事务案例会回滚吗?最后一个90%的人判断错了...
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3461006.html
Copyright © 2020-2023  润新知