shell脚本中()、(())、[]、[[]]、{(1),卧槽

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

2022年 03月 02日 星期三 11:20:09 CST


## 2.两个小括号(())


用于算术运算,只支持整数类型的运算,不支持浮点型,双小括号中的变量可以不使用$符号前缀,括号内支持多个表达式用分号分开, 只要括号中的表达式符合C语言运算规则, 甚至是三目运算符,都可以使用双小括号。  
 最常用的是在for循环。



[root@localhost ~]# vim test1.sh
#!/bin/bash
for ((i=0;i<6;i++));do
echo “$i”
done

[root@localhost ~]# sh test1.sh
0
1
2
3
4
5

//重定义变量值
[root@localhost ~]# vim test1.sh
#!/bin/bash
((num++))
echo “$num”
[root@localhost ~]# sh test1.sh
9


## 3. 单中括号[]


一般进行算术比较,脚本中使用较多。比较的话==和!=只支持字符串比较,-eq,-gt,-lt > < 支持数字类型比较,但是中括号中可不能使用 && 这类的符号哦,若想使用就得使用双中括号[[]]。在使用单中括号的时候,注意两边的空格。


## 4.双中括号[[]]


[[ ]] 多用来进行字符串比较, 比如两个字符串是否相同, [[ $var1 == $var2 ]]  
 bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。使用[[ … ]]条件判断结构,而不是[ … ],能够防止脚本中的许多逻辑错误。比如,&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,可能会报错。



[root@localhost ~]# vim test1.sh
#!/bin/bash
if [ uname == “Linux” && whoami == “root” ];then
echo “3”
else
echo “4”
fi
[root@localhost ~]# sh test1.sh
test1.sh: 第 2 行:[: 缺少 `]’ //这里会报错说少中括号
4
[root@localhost ~]# vim test1.sh
#!/bin/bash
if [[ `uname` == “Linux” && `whoami` == “root” ]];then
echo “3”
else
echo “4”
fi

[root@localhost ~]# sh test1.sh
3


## 5.大括号{}


对大括号中的内容进行扩展。大括号中,不允许有空白,除非这个空白被引用或转义。



[root@localhost ~]# echo {1…5}
1 2 3 4 5


## 6. ||逻辑或


语法:`command1 || command2`  
 左边的命令返回为假才会执行右边的命令,只要有一个返回为真,后面的命令都不会被执行。



[root@localhost ~]# vim test1.sh
#!/bin/bash
a=88

if [ $a -gt 100 ] || [ $a -gt 90 ] || [ $a -gt 80 ];then
echo “0”
else
echo “1”
fi

[root@localhost ~]# sh test1.sh
0


## 7.&&逻辑与


语法:`command1 || command2`   
 左边的命令返回为真才会执行右边的命令,只要有一个返回为假,后面的命令都不会被执行。



[root@localhost ~]# vim test1.sh
#!/bin/bash
if [ whoami == “root” ] && [ uname == “Linux” ];then
echo “true”
else
echo “false”
fi
[root@localhost ~]# sh test1.sh
true








**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
![img](https://img-blog.csdnimg.cn/img_convert/7b660c255a78a45fe52a22ffdec4c8b2.jpeg)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
vip1024b (备注运维)**
[外链图片转存中...(img-b974TfbR-1713173800151)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell脚本,要实现变量的自加1,可以使用以下方法的任意一种: 1. 使用自增运算符++:可以在变量名后面添加++来实现自加1,例如:`num++`。这将使变量num的值增加1。 2. 使用赋值运算符+=:可以使用赋值运算符+=将变量与1相加来实现自加1,例如:`num+=1`。这将使变量num的值增加1。 以上两种方法都是在当前同一个Shell执行的,并且变量的变化可以在脚本进行获取和使用。 如果你在调用一个新的脚本时想要实现自加1,可以使用fork调用方式。在当前脚本使用`path/to/foo.sh`来调用foo.sh脚本,例如:`./foo.sh`。这将创建一个新的子Shell来执行foo.sh脚本,子Shell执行完毕后返回到父Shell。在子Shell使用上述自加1的方法来实现自加1操作。 另外,如果你使用exec调用一个新脚本,需要注意的是,在exec行之后的内容将不再执行。所以在父脚本使用exec调用一个新脚本时,需要确保自加1的操作在exec行之前完成。 综上所述,在Shell脚本,可以通过自增运算符++或赋值运算符+=来实现变量的自加1,同时可以根据不同的调用方式来选择合适的方法进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [在 Shell 脚本调用另一个 Shell 脚本的三种方式](https://blog.csdn.net/zollty/article/details/122263576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值