shell学习之二

shell学习之二

shell 中| && || () {} 用法以及shell的逻辑与或非

1、&& 运算符:

格式

command1  && command2

&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。 语法格式如下:

command1 && command2 && command3 ...
  1. 命令之间使用 && 连接,实现逻辑与的功能。

  2. 只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。

  3. 只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。

2、|| 运算符:

格式

command1 || command2

||则与&&相反。如果||左边的命令(command1)未执行成功,那么就执行||右边的命令(command2);或者换句话说,“如果这个命令执行失败了||那么就执行这个命令。

  1. 命令之间使用 || 连接,实现逻辑或的功能。

  2. 只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才会被执行。这和 c 语言中的逻辑或语法功能相同,即实现短路逻辑或操作。

  3. 只要有一个命令返回真(命令返回值 $? == 0),后面的命令就不会被执行。

3、() {}运算符:

如果希望把几个命令合在一起执行,shell提供了两种方法。既可以在当前shell也可以在子shell中执行一组命令。 格式:

(command1;command2;command3....)               多个命令之间用;分隔

一串的命令执行()和{} ()和{}都是对一串的命令进行执行,但有所区别: 相同点: ()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开 不同点 ()只是对一串命令重新开一个子shell进行执行,{}对一串命令在当前shell执行 ()最后一个命令可以不用分号,{}最后一个命令要用分号; ()里的第一个命令和左边括号不必有空格,{}的第一个命令和左括号之间必须要有一个空格 ()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令

 

4、| 运算符

管道符号,是unix一个很强大的功能,符号为一条竖线:"|"。 用法:

command 1 | command 2

他的功能是把第一个命令command 1执行的结果作为command2的输入传给command 2

如:top | grep screen

 

5、整数变量表达式

-eq 等于 -ne 不等于 -gt 大于 -ge 大于等于 -lt 小于 -le 小于等于

6、字符串变量表达式

If [ $a = $b ] 如果string1等于string2,则为真 字符串允许使用赋值号做等号 if [ $string1 != $string2 ] 如果string1不等于string2,则为真 if [ -n $string ] 如果string 非空(非0),返回0(true) if [ -z $string ] 如果string 为空,则为真 if [ $sting ] 如果string 非空,返回0 (和-n类似)

7、逻辑运算符

和高级语言一样,shell语言也有逻辑运算符,与、或、非三个逻辑运算符,分别如下

  • !:非

  • -a:与

  • -o:或

逻辑非 ! 条件表达式的相反 if [ ! 表达式 ] if [ ! -d $num ] 如果不存在目录$num

逻辑与 –a 条件表达式的并列 if [ 表达式1 –a 表达式2 ]

逻辑或 -o 条件表达式的或 if [ 表达式1 –o 表达式2 ]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值