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:
var.sh

在这里插入图片描述
预定义变量
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
在这里插入图片描述
在这里插入图片描述
23是否大于等于22
在这里插入图片描述
在这里插入图片描述
判断文件是否存在
在这里插入图片描述
在这里插入图片描述

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

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

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

*)
代码(如果不是以上的值,执行此代码)
;;
esac
在这里插入图片描述

在这里插入图片描述

for循环
for 变量 in 值1 值2 值3
do
程序
done
在这里插入图片描述

在这里插入图片描述
for((初始值;循环条件;变量变化))
do
代码
done
在这里插入图片描述
在这里插入图片描述
while循环
while [ 条件判断式 ]
do
程序
done
在这里插入图片描述

在这里插入图片描述

read读取控制台输入
read(选项) (参数)
-p 指定读取值的提示符 -t指定读取值时等待的时间(秒),如果没有在指定的时间输入,就不等待了
参数:
变量:指定读取值的变量名
在这里插入图片描述
在这里插入图片描述

四、函数

shell中有系统函数,也可以自定义函数
自定义函数基本语法
[ function ] funname[()]
{
Action;
[return int;]
}
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值