bash教程:一、变量,函数,控制流程

变量的定义和使用

变量的定义

bash变量定义很简单。如下:

a="hello"
左边是变量名,右边是变量值。bash是弱类型,因此不需要给a加上类型。注意,等号两边不能有空格 比如 a = "hello",这是错误的。

变量使用

变量使用需要在定义的变量名之前加上$,比如我们打印之前定义的a

echo $a

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

流程控制

流程控制则是编写程序必备的过程,比如顺序,循环,条件,分支等等。在其他类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条评论

lin进行回复 取消回复

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