Linux的任何两条命令都可以使用&&进行与运算,格式为:
当两条命令相与时,命令1先执行,命令1的退出状态为0(成功)时,命令2执行;命令1的退出状态为非0(失败)时,命令2不执行;只有当两条命令的退出状态都为0时,整个命令的退出状态为0,否则为非0。
下面将date命令与pwd命令进行与运算:
假设输入命令时,不小心把date输成了dete,dete执行失败,pwd命令不执行:
在写脚本时,当命令2的运行依赖于命令1的成功运行时(命令1成功运行之后,命令2才能运行),通常写为:
例如,如果文件a.txt存在,则删除它,不存在则不删除,可以这样执行:
不仅两条Linux命令可以进行与运算,多条Linux命令也可以进行与运算,格式为:
这些命令依次执行,当某条命令失败时,其后的命令不再执行。
举个例子,希望将文件a.txt复制为b.txt,运行cpa.txtb.txt即可。但是,如果希望这件事成功率高一点,可以先保证a.txt存在,再保证b.txt不存在(或者存在并有写权限),可以用ls命令查看。例如:
运行ls命令,根据屏幕信息可以判断文件是否存在。而在运行的脚本中可以用下面的命令进行判断:
该命令先判断a.txt是否存在,如果存在,继续判断b.txt是否不存在,如果不存在,运行复制命令。如果希望复制的成功率再高一点,还应判断a.txt是否可读,改进后的命令为:[-ra.txt]&&[!-eb.txt]&&cpa.txtb.txt。
Linux的任何两条命令可以使用||进行或运算,格式为:
(www.xing528.com)
当两条命令相或时,命令1先执行,命令1的退出状态为0(成功)时,命令2不再执行;命令1的退出状态为非0(失败)时,命令2得到执行机会;只有当两条命令的退出状态都为非0时,整个命令的退出状态为非0,否则为0。
下面将date命令与pwd命令进行或运算:
假设输入命令时,不小心把date输成了dete,dete执行失败,pwd命令得到执行机会:
在写脚本时,可能有这样的情景:如果命令1失败,希望命令2运行;如果命令1成功,命令2无需运行时。通常写为:
举个例子,读入一个数,显示它的绝对值。非负数的绝对值是它本身,负数的绝对值是它的相反数:
命令declare-id是必须的,如果没有这条命令,echo$d的结果将是--50,而不是50。因为,变量默认被当成字符串处理,并不是给它赋了个整数,它就完全具有了整数属性,命令declare-id运行后,它才完全具有整数属性。
不仅两条Linux命令可以进行或运算,多条Linux命令也可以进行或运算,格式为:
这些命令依次执行。当某条命令执行成功时,其后的命令不再执行;当某条命令及之前的命令都执行失败时,其后的命令才得到执行的机会。
还可以对Linux命令进行非运算。一般常对条件判断命令进行非运算,例如:
表5-4的最后三行实际上是Linux命令的与、或、非,条件判断命令也是命令,当然可以进行与、或、非的运算。例如,下面是判断命令[200-gt100]和判断命令[["xyz">"abc"]]相与:
下面是整数关系判断命令((5>3))与((7<=6))相或:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。