1. 什么是Shell?
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
总的来说:Shell就是用户与Linux交换的一款语言。
2. 后缀
.sh
.bat
3. 编写第一个shell
#!/bin/bash
# echo表示输出
echo "hello world"
运行该脚本:./路径/脚本名.sh
4. 变量 弱语言
#!/bin/bash
name="刘德华";
echo "姓名:${name}"
echo "姓名:"${name}
5. Shell 传递参数
在执行shell脚本时可以传递参数值。
#!/bin/bash
name="刘德华";
echo "姓名:${name}"
echo "姓名:"${name}
echo "第一个参数值:$1"
echo "第一个参数值:$2"
执行脚本: ./脚本名 传递的值1 值2
6. Shell 数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由 0 开始。
Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:
array_name=(value1 value2 ... valuen)
6.1 关联数组(map集合)
Bash 支持关联数组,可以使用任意的字符串、或者整数作为下标来访问数组元素。
关联数组使用 declare 命令来声明,语法格式如下:
declare -A site=(["google"]="www.google.com" ["runoob"]="www.runoob.com" ["taobao"]="www.taobao.com")
-A 选项就是用于声明一个关联数组。
关联数组的键是唯一的。
7. Shell 基本运算符
7.1 算术运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加(注意使用的是反引号 *`* 而不是单引号 *'*):
#!/bin/bash
a=100
b=15
c=`expr $a / $b`
echo "c===$c"
7.2 关系运算符
a=10
b=20
#
if [ $a -eq $b ]
then
echo "$a -eq $b : a 等于 b"
else
echo "$a -eq $b: a 不等于 b"
fi
7.3 布尔运算符
if [ $a -lt 100 -a $b -gt 15 ]
then
echo "$a 小于 100 且 $b 大于 15 : 返回 true"
else
echo "$a 小于 100 且 $b 大于 15 : 返回 false"
fi
8. 控制语句
8.1 if
a=10
b=20
if [ $a -eq $b ]
then
echo "a 等于 b"
elif [ $a -gt $b ]
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
8.2 for
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done