编译性语言:

是在程序运行前,需要专门的一个编译过程,如生成exe,hex文件等特定的机器语言文件。(必须在特定系统上)。所以以后就可以直接运行,不用在进行编译了。但该文件不能夸操作系统系统平台,因为该文件在不同操作系统中是不识别的。

解释性语言:

解释性语言:不需要解释,是在程序执行的时候,运行一行翻译一行。所以每次执行都要进行解释。

shell是解释性语言

变量

定义变量

shell编程入门_算术运算符

传参

shell编程入门_bash_02

$1 第一个参数 类推

写完脚本后,要给它赋予可执行权限

[root@note01 test]# ./a.sh 5 6
第一个参数:5
第二个参数:6
数组

数组名=(元素) 元素之间按照空格分开

取每个元素的值时${元素名[下标]}

#!/bin/bash
my_array=(A B "C" D)
echo "第一个元素为: ${my_array[0]}"
echo "第二个元素为: ${my_array[1]}"
echo "第三个元素为: ${my_array[2]}"
echo "第四个元素为: ${my_array[3]}"
运算符

假定变量 a 为 10,变量 b 为 20

基本的算术运算符±/*%都要用反引号包括

`expr $a 算术运算符 $b` 算术运算符之间要空格隔开,并且乘法运算符需要\*转义

= 赋值 a=$b 将把变量 b 的值赋给 a。
== 相等。用于比较两个数字,相同则返回 true。 [ $a == $b ] 返回 false。
!= 不相等。用于比较两个数字,不相同则返回 true。 [ $a != $b ] 返回 true。

#!/bin/bash
a=10
b=20
val=`expr $a + $b`
echo "a + b : $val"
val=`expr $a - $b`
echo "a - b : $val"
val=`expr $a \* $b`
echo "a * b : $val"
val=`expr $b / $a`
echo "b / a : $val"
val=`expr $b % $a`
echo "b % a : $val"
if [ $a == $b ]
then
echo "a 等于 b"
fi
if [ $a != $b ]
then
echo "a 不等于 b"
fi

结果

a + b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a 不等于 b

关系运算符

shell编程入门_算术运算符_03

#!/bin/bash
a=10
b=20
if [ $a != $b ]
then
echo "$a != $b : a 不等于 b"
else
echo "$a != $b: a 等于 b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
then
echo "$a -lt 100 -a $b -gt 15 : 返回 true"
else
echo "$a -lt 100 -a $b -gt 15 : 返回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
then
echo "$a -lt 100 -o $b -gt 100 : 返回 true"
else
echo "$a -lt 100 -o $b -gt 100 : 返回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
then
echo "$a -lt 100 -o $b -gt 100 : 返回 true"
else
echo "$a -lt 100 -o $b -gt 100 : 返回 false"
fi

-o 表示or
-a 表示and

结果

10 != 20 : a 不等于 b
10 -lt 100 -a 20 -gt 15 : 返回 true
10 -lt 100 -o 20 -gt 100 : 返回 true
10 -lt 100 -o 20 -gt 100 : 返回 false

逻辑运算符 && 和||

字符串运算符

shell编程入门_bash_04

函数

函数定义要在调用前

调用时只需要函数名即可

#!/bin/bash
demoFun(){
echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun