什么是shell
1. Shell 是一个用C语言编写的应用程序,它是用户使用Linux的桥梁。
2. Shell既是一种命令语言,又是一种程序设计语言。
3. Shell是值一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
脚本和环境
Shell脚本, 它是一种为shell编写的脚本程序。
Shell环境,使用一个能编写代码的文本编辑器 vi 和一个能解释执行的脚本解释器。如:/bin/bash。
Linux的Shell种类众多,常见的有:
1. /usr/bin/sh 或 /bin/sh
2. /bin/bash (常用、默认)
3. /usr/bin/csh
...
作用
在Shell中,将许多命令写在一起,让用户很轻松的就能执行一个文件的Shell脚本,就能够一次执行多个命令。
基本格式
- 创建文件:vi 脚本名字.sh
脚本第一行格式:
#!/bin.bash
符号#!用来指定该脚本文件的解析程序,这里使用的是bin目录下的bash解析器。
第一个脚本:vi hello.sh
#!/bin/bash echo ‘hello word‘
脚本执行:
1. /bin/bash 脚本名 (推荐)
2. chmod +x 脚本名 -> ./脚本名
注意事项:
- chmod + x file 加上执行权限,否则会提示无执行权限。
- 脚本后缀名可以任意修改,仍然可以正常运行。
Shell中的变量
变量:在程序运行过程中可以改变的量。
变量命名规则:
- 首个字符必须为字符(a-z,A-Z)。
- 中间不能有空格,可以使用下划线(_)。
- 不能使用标点符号。
- 不能使用bash里的关键字。
变量声明格式 : 变量名 = 变量值
注:变量名和=之间不能有空格。
#!/bin/bash you_name="qt" echo $you_name # 变量名前需要加$,或者 ${you_name},加花括号是为了帮助解释器识别变量的边界。
注意:在echo 字符串时,如果里面存在变量时,这个字符串要用""包裹,而不能使用‘‘,
echo ‘this is $you_name‘ # this is $you_name
echo "this is $you_name" # this is qt
只读变量
使用 readonly 命令可以将变量定义为只读变量。
#!/bin/bash readonly you_name="qt" echo $you_name # 输出qt you_name=‘tt‘ echo $you_name # 报错,并输入 qt
删除变量
使用 unset 命令可以删除变量
#!/bin/bash you_name="qt" echo $you_name # qt unset you_name echo $you_nam # 空
注:当变量是 readonly 时,使用 unset 会报错
字符串操作
- 拼接字符串
-
#!/bin/bash name="hello" res="$name word" echo $res
-
- 获取字符串长度:${#变量名}
-
#!/bin/bash name="hello" res="$name word" echo ${#res}
-
- 提取子字符串:${变量名:截取字符的下标:截取的长度}
-
#!/bin/bash name="hello" res="$name word" echo ${res:1:4}
-
数组
定义:用括号代表数组,数组元素用“空格”符号分隔开。
形式:数组名=(值1 值2 ... 值n)
#!/bin/bash num=(44 11 ‘hello‘ ‘word‘) # 定义数组并赋值,由此可见,数组中可以存放不同类型的数据 echo ${num[0]} # 获取数组中下标为0的值 echo ${num[2]} # 获取数组中下标为2的值
- 获取数组中所有的元素:${数组名[@]}
-
#!/bin/bash num=(44 11 ‘hello‘ ‘word‘) echo ${num[@]} # 获取所有元素 echo ${num} # 当不带下标时,默认输入第一个元素,44
-
- 获取数组的长度:${#数组名[@]}
-
#!/bin/bash num=(44 11 ‘hello‘ ‘word‘) echo ${#num[@]} # 4
-
- 获取数组中单个元素的长度:${#数组名[下标]}
-
#!/bin/bash num=(44 11 ‘hello‘ ‘word‘) echo ${#num[1]} # 2
-
注释
以“#”开头的行就是注释,会被解释器忽略。第一行的#是解释说明,并不是注释!
sh里没有多行注释,只能每行接一个#。
基本运算符
> 算术运算符
> 关系运算符
> 布尔运算符
> 字符串运算符
> 文件测试运算符
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
两个数相加(注意使用的是反引号` 而不是单引号 ‘)。
#!/bin/bash exp=`expr 2 + 2` # 表达式之间需要用空格 echo "sum: $exp"
....持续更新