目录

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

Linux——shell脚本相关推荐

  1. 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程

    Linux Shell脚本教程:30分钟玩转Shell脚本编程 http://c.biancheng.net/cpp/shell/ 转载于:https://www.cnblogs.com/pegasu ...

  2. Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  3. linux 检查权限,检查目录下 文件的权限-linux shell脚本,

    检查目录下 文件的权限-linux shell脚本, #!/bin/bash #History: #2019/07/23    Fsq #This Program will check Permiss ...

  4. Linux shell脚本数值计算个人心得

    Linux shell脚本数值计算个人心得 本篇博客为,个人对与bash数值计算的一些心得与用法. Bash对于数值是没有明确定义的,在shell里面所有的数值都默认为字符串,并不是单纯的数值. 比如 ...

  5. linux运维实战练习及linux shell脚本、awk、sed工具命令学习总结

    一.linux shell 脚本 1.描述shell程序的运行原理(可附带必要的图形说明): Linux系统的shell作为操纵系统的外壳,为用户提供使用操纵系统的接口.它是命令语言.命令解释程序及程 ...

  6. linux shell脚本字符串连接符,学习Linux shell脚本中连接字符串的方法

    这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...

  7. linux下实用小脚本,十个增加 Linux Shell 脚本趣味的小工具

    很多人误以为shell脚本只能在命令行下使用.其实shell也可以调用一些GUI组件,例如菜单,警告框,进度条等等.你可以控制最终的输出,光标位置还有各种输出效果.下面我将介绍一些工具,帮助你创建强大 ...

  8. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  9. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  10. linux sh脚本 while,Linux shell脚本使用while循环执行ssh的注意事项

    原标题:Linux shell脚本使用while循环执行ssh的注意事项 如果要使用ssh批量登录到其它系统上操作时,我们会采用循环的方式去处理,那么这里存在一个巨大坑,你必须要小心了. 一.场景还原 ...

最新文章

  1. Github 一夜爆火:这份金九银十 Java 面试手册我给跪了
  2. php防止注入漏洞,php防止sql注入漏洞代码
  3. opencv3.10加入OPENCV_contrib模块
  4. Nginx 的 Location 配置指令块
  5. UVa 120 - Stacks of Flapjacks
  6. c语言中宏名的作用时段,C语言中的宏定义!
  7. 【软件开发规范五】《用户需求及规格说明书》
  8. 短信群发助手调试笔记
  9. 苏州木渎计算机课程培训,苏州木渎H5/web全栈开发培训
  10. cad批量打印_CAD批量打印
  11. F007-正本清源说奥派 #F1170
  12. MyBatis从入门到精通 PDF 完整版
  13. PolynomialFeatures多项式转换
  14. BeanFactory与ApplicationContext的区别
  15. IT审计质量控制评价和改进实践
  16. 群控系统服务器配置,群控服务器配置
  17. 【HCIA 03】华为静态路由配置
  18. vue2.0版本搭建一个中型PC项目,注意事项
  19. 2350: 彩排(二进制记录个数)
  20. 读书笔记--关于PPT的制作

热门文章

  1. 网站域名被劫持、网站dns被劫持 域名跳转到别的网站的解决方法
  2. 2014去哪儿网校园招聘笔试(10.13北京)
  3. python编程图文_深入Python多进程编程基础——图文版
  4. workflow开发注意事项
  5. 600岁的故宫,已经越来越飘了!
  6. 为什么挤破头进大厂,大厂如何设置薪资职级体系?
  7. unity 适配iPhone X底部横条
  8. Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resour
  9. 氢os android8,一加8T或预装氢OS11系统,基于Android 11定制
  10. C语言源代码系列-管理系统之会员计费系统