shell脚本入门
- 认识shell
Shell是介于用户和内核之间的一个工具,用户的操作通过shell进行解析,然后传递给内核。
Shell有两种表现形式:交互式(单步执行)、脚本式(文本执行),我们通常所说的shell编程是第二种,及脚本式
类型:bash(linux默认)、ash、csh、ksh、等解析器
#echo $SHELL
可以查看解析器
环境变量$SHELL标明了系统使用的shell
/etc/shells定义了系统可用的shell
cat /etc/shells
- 第一个脚本
- 创建文件
mkdir shell
进入编辑器
vi shell1.sh
添加图片上的代码,./shell1.sh输出后发现该脚本没有输出权限,修改权限,chmod +x shell1.sh
最后输出
./shell1.sh
另外 输入
/bin/bash shell1.sh
无需添加可执行权限
3.书写shell
- 指定shell解析器:# !/bin/bash
- 注释符号:#
- 非常严格的使用习惯
- 变量
#! /bin.bash
a=3 //定义变量,等号前后不能有空格
echo $a //使用变量
unset a //销毁变量
5、变量类型
本地变量:只在shell脚本内部使用
位置变量:
6、特殊命令
seq m n #产生从m到n的整数
sepr #讲表达式进行运算
7、字符串
8、字符串操作
长度计算:${#变量名} 如:${#str}
字符串提取:${变量名:开始:长度} 如:${str:2:3},从str中第二个字符中提取三个
9、数组操作
在vi编辑器中
#! /bin/bash
array=(a b c d) #定义数组
echo ${array[0]} #获取下标为0的元素
10、各种运算
测试工具:test,成功的值$?表现为0,失败的值$?表现为1
简写形式:[表达式〕,[]前后都必须有空格
数值比较:
-1t:小于
-1e:小于等于
-gt:大于
-ge:大于等于
-eq: 等于
-nq:不等于
宇符串比较:
=:等于
!=:不等于
-n:宇符串长度不为0时,结果为真
-z:宇符串长度为0时,结果为真
文件判断:
-f:普通文件
-d:目录文件
-W:文件可写
-x:文件可执行
-s:文件至少有一个宇符
-c:字符设备文件
逻辑判断:
-a:逻辑与,and的简写,另一种形式&&
-0:逻辑或,or的简写,另一种形式!
!:逻辑非
If分支结构
#! /bin/bash
if[2 lt 3];then
echo" 2 < 3 "
fi
循环结构
for x in a b c
do
echo $x
done
函数使用
#! /bin/bash
demo()
{
echo "hello world'"
}
demo