Linux——shell脚本

目录

shell脚本简介

shell脚本的定义

shell脚本执行方式

shell变量

位置参数变量

其他变量

shell数值变量

条件测试

if  case  for  while 


shell脚本简介

​​​​​​
  • Shell脚本是实现Linux系统管理及自动化运维所必备的重要工具。
  • 执行Shell提升运维人员的工作效率,减少不必要的重复工作。
  • 将复杂而又反复的操作放在一个文件中,通过执行一个文件完成相应任务。

shell脚本的定义

  • 脚本后缀:文件一般以.sh做后缀,也可以没有后缀
  • 脚本开头:#!/bin/sh(#!用来声明脚本由什么shell解释,否则使用默认shell)

     注:单个"#"号代表注释当前行

shell脚本执行方式

方式一:

设置文件具有可执行权限后

./c.sh

方式二:

bash c.sh

shell变量

定义语法:变量名=值

变量名:由数字、字母、下划线组成,数字不能开头,区分大小

举例:a_1=2020

注意:=赋值号两边不能有空格 

使用变量值:$变量名   或者 ${变量名}

打印输出变量:使用echo命令可以显示单个变量取值

位置参数变量

应用场合:

当我们执行一个 shell 脚本时,如果希望获取到命令行的参数信息,使用到位置参数变量。

比如 :

./cp.sh a.txt b.txt , 这个就是一个执行 shell 的命令行,可以在cp.sh脚本中获取到参数信息

$0:当前shell脚本文件名

$n:$1-$9 代表第1到第9个参数,10以上的参数,需要用大括号包含,如${10})

其他变量

$#:传给shell脚本参数的数量

$*:传给shell脚本参数的内容

$?:命令执行后返回的状态

"$?"用于检查上一个命令执行是否正确(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错)。

$$:当前进程的进程号

"$$"变量最常见的用途是用作临时文件的名字以保证临时文件不会重复

shell数值变量

shell中默认把变量值当作字符串

例如:

age=22 age=${age}+1 echo ${age} 输出结果为22+1,而不是23,因为shell将其解释为字符串,而不是数学运算。

let命令使其进行数学运算

例如:

let age=${age}+1

declare把变量定义为整型

例如

declare -i age=22

这里就用 -i 选项把age定义为整型的了。此后每次运算,都把age的右值识别为算术表达式或数字。

条件测试

test命令:用于测试字符串、文件状态和数字

test格式: test condition 或[ condition ]

注:使用方括号时,要注意在条件两边加上空格

四种测试条件: 文件测试、字符串测试、数字测试、复合测试

文件测试:

作用:测试文件状态的条件表达式

  • -e ——是否存在  
  • -d ——是目录  
  • -f ——是文件  
  • -s ——文件非空
  • -r ——可读  
  • -w ——可写
  •  -x ——可执行
  • -L——符号连接  
  • -c——是否字符设备
  • -b——是否块设备

字符串测试:

作用:字符串比较

  • -z ——空串
  • -n ——非空串
  • = ——两个字符串相等
  • !=——两个字符串不相等

数值测试:

作用:数字比较

  • -eq ——数值相等
  • -ne ——数值不相等
  • -gt ——数1大于数2
  • -ge ——数1大于等于数2
  • -le ——数1小于等于数2
  • -lt ——数1小于数2

逻辑测试:

作用:逻辑正确与否

  • -a ——与
  • -o ——或
  • !——非

if  case  for  while 

if格式

if [ 条件1 ] 
then
执行第一段程序
else
执行第二段程序
fi

注:如果if和then在同一行then后面需要加分号(;)

多重if格式

if [ 条件1 ]; 
then
执行第一段程序
elif [ 条件2 ];
then
执行第二段程序
else
执行第三段程序
fi

case格式

case $变量名称 in
“第一个变量内容”) 
程序段一;; 
“第二个变量内容”) 
程序段二;; 
*) 
其它程序段
exit 1 
esac 

 for格式

注:列表内容可为字符串、文件、数字

for 变量 in 列表
do
    程序段
done

 while格式

while 条件测试
do
    程序段
done
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白变形计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值