bash学习笔记(一):变量,函数,控制流程

这是我学习bash的一个笔记。记录一下,或许能够帮助那些踩到坑的同学

变量部分

变量定义

和其他类C语言一样,bash拥有变量,定义:

a="hello" #注意,等号两边不能有空格 比如 a = "hello"这是错误的,这是我踩到的第一个坑

变量使用

变量使用需要在定义的变量名之前加上$

echo $a #将会在屏幕上打印 hello

特殊变量后面再说,现在仅仅是最基础的,能够让自己写出一个完整的脚本就行。

流程控制

流程控制则是编写程序必备的过程,比如顺序,循环,条件,分支等等。在其他类C语言中有if…else,for,while,do…while,switch,那么在bash里面,这些应该怎么写呢。

if…else结构

a=0
if [ a -eq 0 ]; then
    echo "a=0"
fi

这里if else结构和我们常见的很不一样,首先条件使用中括号括起来的,其次是if和中括号以及中括号和语句之间必须要有空格存在(这是踩到的第二个坑)。关于关系运算符参考下表

运算符号 代表意义
= 等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串
!= 不等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串
< 小于 应用于:整型比较 在[] 中,不能使用 表示字符串
> 大于 应用于:整型比较 在[] 中,不能使用 表示字符串
-eq 等于 应用于:整型比较
-ne 不等于 应用于:整型比较
-lt 小于 应用于:整型比较
-gt 大于 应用于:整型比较
-le 小于或等于 应用于:整型比较
-ge 大于或等于 应用于:整型比较
-a 双方都成立(and) 逻辑表达式 –a 逻辑表达式
-o 单方成立(or) 逻辑表达式 –o 逻辑表达式
-z 空字符串
-n 非空字符串

foo=”hello”判断两个字符串相等或者不相等,请用 = 和 != 或者 ==

if [ $foo == "he" ]; then
    echo "he"
else
    echo $foo
fi
#这将会输出hello,注意条件里面 == 两边都有空格,此处的 == 还可以用 =,看起来很奇葩的样子

循环

比较喜欢使用while循环,linux下面的while循环是这样的,while…do…done,写法如下。同样需要注意,方括号和while需要有一个空格,方括号里面的表达式与方括号之间也需要一个空格

while [ condition ]; do
 #statements
done

条件运算符见上面的表。死循环的条件是 1,0或者true或者其他任意字符串。

其他的循环暂时就不写了

函数

bash函数的定义

有两种方式

一种使用function关键字,函数名不需要加括号

 

function func_name{
    #statements
}

或者另一种,不使用function关键字,直接函数名加上括号

 

func_name(){
    #statements
}

bash函数的使用

和一些语言不一样,不需要加括号

func_name

 

 

赞赏

微信赞赏支付宝赞赏

《bash学习笔记(一):变量,函数,控制流程》有2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注