SHELL脚本编程入门基础

一. SHELL入门

1.1 变量
1.1.1 变量名规范
  • 变量是由任何字母、数字、下划线组成的字符串,且不能以数字开头。
  • 区分字母大小写
  • 变量、等号、值中间不能出现任何空格

实例
在这里插入图片描述

注:$ var1+$ var2并不能实现相加,$ var1,$ var2默认作为字符串来处理

1.1.2 位置变量

当一条命令或脚本执行时,后面可以跟多个参数,我们使用位置参数变量来表示这些参数。

位置参数变量 描述
$n n 为数字,$ 0 代表Shell本身的文件名,$ 1〜$ 9 代表第 1 ~ 9 个参数,10 以上的参数需要用大括号包含, 如 $ {10}
$* 命令行所有参数,把所有的参数看成一个整体
$@ 命令行中所有参数,但每个参数区别对待
$# 命令行中所有参数的个数

实例
在这里插入图片描述

$ @和$ *都表示命令行所有参数,但是$ *将命令行的所有参数看成一个整体,而$ @则区分各个参数

1.1.3 环境变量

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或多个应用程序将使用到的信息。Linux是一个多用户的操作系统,每个用户登录系统时都会有一个专用的运行环境,通常情况下每个用户的默认的环境都是相同的。这个默认环境就是一组环境变量的定义。每个用户都可以通过修改环境变量的方式对自己的运行环境进行配置。

分类

  • 对所有用户生效的环境变量 /etc/profile

  • 对特定用户生效的环境变量 ~ /.bashrc或者~/.bash_profile

  • 临时有效的环境变量 export

常用环境变量

环境变量 含义
PATH 命令搜索的路径
HOME 用户家目录的路径
LOGNAME 用户登录名
PWD 当前所在路径
HISTFILE 历史命令的保存文件
HISTSIZE 历史命令保存的最大行数
HOSTNAME 主机名
SHELL 用户当前使用的SHELL
PS1 一级命令提示符
TMOUT 用户和系统交互过程的超时值
IFS 系统输入分隔符
OFS 系统输出分隔符

实例
在这里插入图片描述

1.2 管道

将一个命令的输出作为另一个命令的输入

实例

  • 列出所有安装过的软件包
rpm -qa

rpm命令是RPM软件包的管理工具
  • 列出与python相关的软件包
rpm -qa | grep python


Linux grep 命令用于查找文件里符合条件的字符串。
    -a :将 binary 文件以 text 文件的方式搜寻数据
    -c :打印匹配次数
    -f  两个文件相同行  如,grep -f file1 file2
    -h 不显示匹配行所在文件名
    -i :忽略大小写的不同,所以大小写视为相同
    -l 只显示匹配到的文件名
    -n :顺便输出行号
    -o 只显示匹配的字符
    -v :只显示不匹配的行。 
    --color=auto :可以将找到的关键词部分加上颜色的显示喔!
  • 显示与python相关的软件包的行数
rpm -qa | grep python | wc -l


Linux wc命令用于计算字数
    -c或--bytes或--chars 只显示Bytes数。
    -l或--lines 只显示行数。
    -w或--words 只显示字数。
    --help 在线帮助。
    --version 显示版本信息。
1.3 退出状态码
1.3.1 退出状态码描述

所有的shell命令都使用退出状态吗来告知shell它已执行完毕

退出状态码是一个0~255的整数值

Linux提供了一个$?来捕获退出状态码的值,所以,可以通过echo语句测试命令是否运行成功。

一般来讲,退出状态 0 表示正常执行,没有遭遇任何问题。其他非零的状态码均表示失败。

状态码 描述
0 命令成功结束
1 一般性未知错误
2 不适合的shell 命令
126 找到了该命令但无法执行
127 没找到命令
128 无效的退出参数
128+x 与linux信号x相关的严重错误
130 通过ctrl+C终止的命令
255 正常范围之外的退出状态码

实例
在这里插入图片描述

1.3.2 改变退出状态码的exit命令

退出状态码是以上一条指令的返回结果为准
使用exit命令改变退出状态码

exit $exit_code

exit 48 或者 exit 125 或者exit 0

二. 判断与控制

2.1 if-then 语句

语法:

if command | condition     
then 
    commands
fi

实例

#!/bin/bash

if pwd
then 
	echo "It works"
fi

在这里插入图片描述

2.2 if-then-else 语句

语法:

if command | condition     
then 
    commands
else
    commands
fi

实例

#!/bin/bash

if pwd
then 
	echo "It works"
fi
2.3 嵌套if语句

语法:

if command | condition     
then 
    commands
elif command | condition 
then
    commands
else
    commands
fi
2.4 条件测试-数值比较

语法:

if condition     
then 
    commands
fi

或者

if condition;then 
    commands
fi

数值比较

数值比较 含义
n1 -eq n2 n1和n2相等,则返回true;否则返回false
n1 -ne n2 n1和n2不相等,则返回true;否则返回false
n1 -gt n2 n1大于n2,则返回true;否则返回false
n1 -ge n2 n1大于等于n2,则返回true;否则返回false
n1 -lt n2 n1小于n2,则返回true;否则返回false
n1 -le n2 n1小于等于n2,则返回true;否则返回false

实例

#!/bin/bash

if [ $1 -eq $2 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值