Linux Shell编程

一、Shell是什么

shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序

脚本格式要求
1.脚本要以#!/bin/bash 开头
2.脚本需要有可执行权限

脚本的常用执行方式
1.输入脚本的绝对路径或者相对路径(需要给脚本+x权限)
2.sh+脚本(无需+x权限)

二、Shell变量

linux Shell中的变量分为系统变量和用户自定义变量
系统变量:$HOME、 $PWD等 $开头的
显示当前shell中所有变量:set

shell变量的定义
定义变量: 变量=值
撤销变量: unset 变量
声明静态变量: readonly变量,注意:不能unset

定义变量的规则
1.变量名称可以由字母、数字和下划线组成,但是不能以数字开头
2.等号两侧不能有空格
3.变量名称一般习惯大写

将命令返回值赋给变量
1.A=‘date’ 反引号,运行里面的命令,并把结果返回给变量A
2.A=$(date)等价于反引号

设置环境变量
export 变量名=变量值 (将shell变量输出为环境变量)
source 配置文件 (让修改后的配置信息立即生效)
echo $变量名 (查询环境变量的值)

设立了多行注释 :<

位置参数变量
当执行shell脚本时。如果希望获取到命令行的参数信息,就可以使用位置参数变量
比如:./myshell.sh 100 200,这就是一个执行shell的命令行,可在myshell中获取到参数信息

基本语法
$n n为数字 $0代表命令本身,$1-9代表第一到第九个参数,10个以上参数需要用大括号 ${}
$* 代表命令行中所有参数,把所有参数看成一个整体
$@ 代表命令行中所有参数,但是把每个参数区分对待
$# 代表命令行中参数个数

var.sh:
Linux Shell编程_第1张图片

Linux Shell编程_第2张图片
预定义变量
shell设计者事先已经定义好的变量,可以直接在shell脚本中使用
基本语法
$$ 当前进程的进程号
$! 后台运行的最后一个进程的进程号
$? 最后一次执行的命令的返回状态。如果变量的值为0,证明上一个命令正确执行,如果非0,则执行不正确

运算符
基本语法 $((运算式)) 或者 $[运算式] 或者 expr m + n
注意expr运算符之间要有空格,如果想把expr结果赋值给某个变量,使用反引号’’
expr m-n
expr *,/,% 乘,除,取余

三、条件判断

基本语法 condition
非空返回true 可使用$?验证(0为true,>1为false)
[ condition ] && echo OK || echo notok

常用判断条件
1 = 字符串比较
2 两个整数比较 -lt小于 -le小于等于 -eq等于 -gt大于 -ge大于等于 -ne不等于
3. 根据文件权限判断 -r有读的权限 -w写权限 -x执行权限
4. 按照文件类型判断 -f文件存在并且是一个常规文件 -e文件存在 -d文件存在并是一个目录

实例:ok=ok
Linux Shell编程_第3张图片
Linux Shell编程_第4张图片
23是否大于等于22
Linux Shell编程_第5张图片
Linux Shell编程_第6张图片
判断文件是否存在
Linux Shell编程_第7张图片
Linux Shell编程_第8张图片

流程控制
if [ 条件判断式 ]
then
代码
fi

多分枝
if [ 条件判断 ]
then
代码
elif [ 条件判断 ]
then
代码
fi

case $变量名 in “值1” )
代码1
;;
“值2” )
代码2
;;

*)
代码(如果不是以上的值,执行此代码)
;;
esac
Linux Shell编程_第9张图片

Linux Shell编程_第10张图片

for循环
for 变量 in 值1 值2 值3
do
程序
done
Linux Shell编程_第11张图片

Linux Shell编程_第12张图片
for((初始值;循环条件;变量变化))
do
代码
done
Linux Shell编程_第13张图片
Linux Shell编程_第14张图片
while循环
while [ 条件判断式 ]
do
程序
done
Linux Shell编程_第15张图片

Linux Shell编程_第16张图片

read读取控制台输入
read(选项) (参数)
-p 指定读取值的提示符 -t指定读取值时等待的时间(秒),如果没有在指定的时间输入,就不等待了
参数:
变量:指定读取值的变量名
Linux Shell编程_第17张图片
Linux Shell编程_第18张图片

四、函数

shell中有系统函数,也可以自定义函数
自定义函数基本语法
[ function ] funname[()]
{
Action;
[return int;]
}
Linux Shell编程_第19张图片

Linux Shell编程_第20张图片

你可能感兴趣的:(Linux,linux,运维,服务器)