shell编程概念及作用
- What:shell脚本编程是一种脚本编程语言,用于编写脚本文件来执行各种系统操作和自动化任务。
- Why:可以消除繁琐的工作使其自动化,提高工作效率;shell脚本也是可移植的。可以在不同的linux系统上运行;学习成本低。
- How:通过shell编程可以将一系列命令组合成脚本文件,并通过解释器(如Bush)执行。
Shell脚本开发步骤
- 使用vscode或者vim进行编辑,文件名以.sh结尾
- 添加权限:.sh文件默认是没有执行权限的,使用chmod+x 文件名.sh命令增加权限
- 执行shell脚本:./文件名.sh、
Shell类型
本篇以bash shell为例,如要添加一下代码
#!/bin/bash //类似于c语言中的头文件
Shell中“”的使用
"" 将“”中的值按照变量的值打印
'' 将‘’内部内容原封不动的打印
`` 将``中的内容按照命令执行
#实例
#!/bin/bash
#变量"i"
i=100
#保留字面值
echo "hello world"
#替换变量值
echo "hello $i"
#保留字面值
echo 'hello world'
#不替换变量的值
echo 'hello $i'
#执行date命令
echo Today is 'date'
#执行ls命令
echo'ls'
Shell中的变量
- 自然变量
进程默认储存运行环境信息的变量
PATH:存放程序运行目录信息的环境变量
PWD:进程当前所在目录的绝对环境变量
HOME:存放登录用户家目录的环境变量
…
- 位置变量
$1:传入第一个参数
$2:传入第二个参数
$3:传入第三个参数
…:…
$9:传入第九个参数
$0:程序名
$#:传入参数的个数
$$:Shell脚本运行的进程ID
$?:上一条Shell语句执行结果
- 自定义变量(没有变量类型之分,全部都是字符串)
i=100
i=“helloworld”
输入和输出
echo:在命令行输出
read:在命令行输入(输入完一个值之后,按回车,不要按空格)
#输出
echo "输出"
#输入
read num1
scho "$num1"
Shell中的流程控制
if条件语句
if 条件
then
语句1
语句2
else
语句3
语句4
fi
test 测试文件类型及其值得大小
/*tset中:
-e 测试文件是否存在
-eq 相等
-ge 大于等于
-gt 大于
-lt 小于
-le 小于等于
-ne 不相等*/
//实例
if [ test $num ge 0 ] && [ test $num -le 100 ] //代码等于c语言中的if(num>0&&num<100)
then
echo "num是0-100之间的数字"
else
echo "num是0-100之外的数字"
fi
case语句
case 变量 in
值1)语句1
;;
值2)语句2
;;
值3)语句3
;;
*)语句4
;;
esac
示例:
read $var in
1)echo "壹"
;;
2)echo "贰"
;;
3)echo "叁"
;;
*)echo "不认识"
;;
esac
Shell中的循环语句
for语句
for((i=0;i<5; i++))//ps:或者for i in 1 2 3 4 5//pss:for i in `seq5`
do
语句
done
示例
for((i=0;i<5;i++))
do
语句
done
while语句
while 条件
do
语句一
语句二
done
while [ $i -lt 101 ]
do
sum=`expr $sum + $i`
((i++)) //(( ))俩括号为C的用法
done
until语句用法与while一直只是在其条件满足的时候退出
注:上述所有语法都可以采用(( ))俩括号括后采用C的写法
Shell中的数组
array=(how are you) //定义数组array
echo ${
array[0]} //打印how
echo ${
array[1]} //打印are
echo ${
array[2]} //打印you
echo ${
array[3]} //打印how are you
Shell中的函数调用
add()
{
sum=0
sum=' expr $1+$2 '
echo $sum
return $sum
}
ret='add 10 20'