zoukankan      html  css  js  c++  java
  • Linux下的命令执行判断

    参考博主''迹忆''的文章,对linux下命令判断的使用有了初步的认识,命令执行判断是使用&&和||将多条命令联系到一起,执行的时候会通过判断上一条命令的执行结果,来决定下一条命令的执行'命运'。

    $?

    $?即上一条命令执行后的回传值,如果执行正确则返回0,如果执行错误则返回一个非0的数字。

    # 执行正确命令
    [root@node01 /home/yangchaolin]# ll decompress/ total 20 -rw-------. 1 root root 18311 Oct 20 09:47 secure
    # 返回0 [root@node01
    /home/yangchaolin]# echo $? 0
    # 执行错误命令 [root@node01 /home/yangchaolin]# ll hehe ls: cannot access hehe: No such file or directory
    # 返回非0数字 [root@node01
    /home/yangchaolin]# echo $? 2

    &&和||

    利用命令执行后的返回值的特征,可以配合&&和||,完成命令执行的判断,&&和||跟java中短路与和短路或类似。

    (1)comand1 && comand2,如果comand1执行正确,接着会执行comand2,如果comand1执行错误,comand2将不再执行。

    (2)comand1 || comand2,如果comand1执行正确,comand2将不再执行,如果comand1执行错误,则接着还要执行comand2。

    下面结合$?和&& ||进行一下测试,感受一下。

    # 先进入hehe目录,如果没有这个目录则创建这个目录
    [root@node01 /home/yangchaolin]# cd hehe || mkdir hehe && echo $? -bash: cd: hehe: No such file or directory
    # 返回0是因为创建目录hehe成功了,所以返回0
    0
    # 查看验证确实创建目录成功 [root@node01 /home/yangchaolin]# ll total 104 -rw-r--r--. 1 root root 4 Oct 20 10:56 count drwxr-xr-x. 2 root root 4096 Oct 20 09:53 decompress
    drwxr-xr-x. 2 root root  4096 Oct 20 11:48 hehe
    ...
    # 再次执行重复命令 [root@node01
    /home/yangchaolin]# cd hehe || mkdir hehe && echo $?
    # 执行返回0,是因为cd hehe || mkdir hehe的cd hehe执行成功,mkdir hehe就不再执行,整体执行成功,因此echo $?会执行 0
    # 确定进入了hehe目录。 [root@node01 /home/yangchaolin/hehe]# pwd /home/yangchaolin/hehe

    以上是对Linux命令执行判断的简单理解,后续查看用。

    参考转载博文:

    (1)https://www.onmpw.com/tm/xwzj/opersys_124.html 非常棒的$?介绍

  • 相关阅读:
    ISAPI Extension和ISAPI Filter
    Windows Debugging之二
    Windows Debugging之三
    举例一些可执行文件的后缀名
    Windows Debugging 之一
    [转]C# 日期函数
    在DataGridView中的CellEndEdit事件中删除当前行报错
    一个奇怪的问题
    [转载]如何发送和接收 Windows Phone 的 Toast 通知
    【转载】如何播放 Windows Phone 的后台音频
  • 原文地址:https://www.cnblogs.com/youngchaolin/p/11716600.html
Copyright © 2011-2022 走看看