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
Linux——shell脚本相关推荐
- 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程
Linux Shell脚本教程:30分钟玩转Shell脚本编程 http://c.biancheng.net/cpp/shell/ 转载于:https://www.cnblogs.com/pegasu ...
- Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...
- linux 检查权限,检查目录下 文件的权限-linux shell脚本,
检查目录下 文件的权限-linux shell脚本, #!/bin/bash #History: #2019/07/23 Fsq #This Program will check Permiss ...
- Linux shell脚本数值计算个人心得
Linux shell脚本数值计算个人心得 本篇博客为,个人对与bash数值计算的一些心得与用法. Bash对于数值是没有明确定义的,在shell里面所有的数值都默认为字符串,并不是单纯的数值. 比如 ...
- linux运维实战练习及linux shell脚本、awk、sed工具命令学习总结
一.linux shell 脚本 1.描述shell程序的运行原理(可附带必要的图形说明): Linux系统的shell作为操纵系统的外壳,为用户提供使用操纵系统的接口.它是命令语言.命令解释程序及程 ...
- linux shell脚本字符串连接符,学习Linux shell脚本中连接字符串的方法
这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...
- linux下实用小脚本,十个增加 Linux Shell 脚本趣味的小工具
很多人误以为shell脚本只能在命令行下使用.其实shell也可以调用一些GUI组件,例如菜单,警告框,进度条等等.你可以控制最终的输出,光标位置还有各种输出效果.下面我将介绍一些工具,帮助你创建强大 ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- Linux shell脚本基础学习详细介绍(完整版)一
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...
- linux sh脚本 while,Linux shell脚本使用while循环执行ssh的注意事项
原标题:Linux shell脚本使用while循环执行ssh的注意事项 如果要使用ssh批量登录到其它系统上操作时,我们会采用循环的方式去处理,那么这里存在一个巨大坑,你必须要小心了. 一.场景还原 ...
最新文章
- Github 一夜爆火:这份金九银十 Java 面试手册我给跪了
- php防止注入漏洞,php防止sql注入漏洞代码
- opencv3.10加入OPENCV_contrib模块
- Nginx 的 Location 配置指令块
- UVa 120 - Stacks of Flapjacks
- c语言中宏名的作用时段,C语言中的宏定义!
- 【软件开发规范五】《用户需求及规格说明书》
- 短信群发助手调试笔记
- 苏州木渎计算机课程培训,苏州木渎H5/web全栈开发培训
- cad批量打印_CAD批量打印
- F007-正本清源说奥派 #F1170
- MyBatis从入门到精通 PDF 完整版
- PolynomialFeatures多项式转换
- BeanFactory与ApplicationContext的区别
- IT审计质量控制评价和改进实践
- 群控系统服务器配置,群控服务器配置
- 【HCIA 03】华为静态路由配置
- vue2.0版本搭建一个中型PC项目,注意事项
- 2350: 彩排(二进制记录个数)
- 读书笔记--关于PPT的制作
热门文章
- 网站域名被劫持、网站dns被劫持 域名跳转到别的网站的解决方法
- 2014去哪儿网校园招聘笔试(10.13北京)
- python编程图文_深入Python多进程编程基础——图文版
- workflow开发注意事项
- 600岁的故宫,已经越来越飘了!
- 为什么挤破头进大厂,大厂如何设置薪资职级体系?
- unity 适配iPhone X底部横条
- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resour
- 氢os android8,一加8T或预装氢OS11系统,基于Android 11定制
- C语言源代码系列-管理系统之会员计费系统