目录
Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。shell他就是一个脚本命令,当运行该脚本命令时,可以与Linux系统底层进行交互。
1.基本语法.sh
#!/bin/bash
echo "Hello World !"
必须以#!/bin/bash开头
echo 输出语句
执行: ./脚本文件名.sh
注意: 权限不足,一定要添加执行权限
2.Shell 变量
Shell变量不需要添加数据类型
3.Shell 传递参数
当执行Shell脚本时,可以传递参数。 在shell脚本中使用$n接受传递的参数。n:表示数字
4.Shell 数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小。
与大部分编程语言类似,数组元素的下标由 0 开始。
语法:array_name=(value1 value2 ... valuen)
注意: Shell 数组用括号来表示,元素用"空格"符号分割开。
注意: 如果直接引用数组名而没有使用下标默认下标0。
5.关联数组
可以理解成java中的map。
关联数组使用 declare 命令来声明。
语法:declare -A array_name=([k]=v [k]=v [k]=v)
${arr_name[k]}
注意:使用*表示所有key对应的值
6.Shell 基本运算符
算数运算符
关系运算符
布尔运算符
字符串运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
7.控制语句
和 Java、PHP 等语言不一样,sh 的流程控制不可为空,如果 else 分支没有语句执行,就不要写这个 else。
1.if else 语法格式
if condition then command1 command2 ... commandN else command fi写成一行:if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi
使用 ((...)) 作为判断语句:
a=10
b=20
if (( $a == $b ))
then
echo "a 等于 b"
elif (( $a > $b ))
then
echo "a 大于 b"
elif (( $a < $b ))
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
2.for 循环一般格式
for var in item1 item2 ... itemN do command1 command2 ... commandN done写成一行:for var in item1 item2 ... itemN; do command1; command2… done;
for num in 1 2 3 4 5
do
echo "The num is: $num"
done