一、shell介绍
shell是c语言编写的程序,既是一种命令语言,又是一种程序设计语言。
shell种类:.sh
编译器:ash,bash,ksh,csh,zsh
查看当前系统下的shell:cat /etc/shells
查看默认的shell类型:echo $SHELL
二、shell脚本
1.新建一个.sh格式的文件
2.内容:(在这个文件里面输入我们要执行的命令)
1)首行:#! /bin/bash ,#!是一个约定的标记,告诉系统这个脚本用什么样的编译器来执行
2)文本:
echo 文本---向窗口输出文本
3)注释:
单行注释 #
多行注释 :<<!
!
3.运行脚本
sh xxx.sh
bash xxx.sh
source xxx.sh
路径的方式来运行:绝对路径,相对路径 ./ 在执行的时候有可能当前的文件没有执行权限:(1)chmod +x/r/w ./文件名---对编写的程序赋予可执行的权限,(2)chmod 777 文件名----对文件进行满权限操作,r-4,w-2,x-1
总结:最好用sh xxx.sh方式来运行脚本
三、shell的变量
1.本地变量,作用域只在当前环境有效
普通变量:直接在终端进行定义,用echo输出即可,如下图
1)变量名=变量值 等号前后不能有空格,且变量值中间不能有空格
2)变量名=‘变量值’ 值全部为字符串
3)变量名="变量值" 值为字符串,如果值内有其他变量,则解析变量,并将变量值作为输出数据
提示:
变量值''和""区别:''不能解析其内变量,""可以解析其内变量
变量值为数字,不加引号,其他推荐使用""
2.全局变量,通过export把一个局部变量转换为全局变量
env 查看系统中已存在的全局变量
export 变量=值 定义全局变量,变量名建议为大写
3.内置变量,内置变量只有$1-$9
$0:获取当前执行的脚本的文件名
$✳:代表获取的是所有参数
$#:代表获取的是参数的个数
4.取消变量
对定义的变量,如果不使用时要及时进行取消,释放系统资源
格式:
unset 变量名 unset:内建shell命令,作用取消变量或函数,取消时变量名没有$
四、运算符
算术运算符、比较运算符、逻辑运算符
五、函数:if,case,for,while
1.定义函数:
1 function 函数名(){2 语句 3 }
2.调用函数:
函数名
3.if:
1 if [条件]2 then3 语句块4 elif [条件]5 then6 语句块7 else8 语句块9 fi
4.case
1 case 变量 in:2 值1)3 echo "语句块1";;4 ✳)5 echo "语句块2";;6 esac
星号(✳)相当于else
5.for
1 for 值 in 列表2 do3 执行语句4 done
6.while
1 while [条件]2 do3 执行语句4 done
六、扩展
1.计算/etc目录下有多少个文件
1 #! /bin/bash2 count='ls /etc | wc -l' 3 echo $count
2.1)解释:
1 #! /bin/bash2 for tfile in kkk aaa bbb tst; do3 echo $tfile4 done
输出的文本为:
1 kkk2 aaa3 bbb4 tst
2)把一个目录下的文件查询出来赋值给一个变量
1 #! /bin/bash2 for tfile in 'ls /usr/testhome/'; do3 echo $tfile4 done