c语言表达式 1 lt a lt 5,Shell编程 (Ⅰ)

1.shell脚本介绍

shell是一种脚本语言 和传统的开发语言比较,会比较简单

shell有自己的语法;可以使用逻辑判断、循环等语法

可以自定义函数,目的就是为了减少重复的代码

shell是系统命令的集合

shell脚本可以实现自动化运维,能大大增加我们的运维效率

2.shell脚本结构和执行

shell脚本的格式

开头需要加#!/bin/bash

以#开头的行作为解释说明

脚本的名字以.sh结尾,用于区分这是一个shell脚本

执行脚本的过程

f8dd6b516aa899a33a5a6dde9070df3d.png

执行脚本的其他方法

/bin/sh实际是bash的软连接,其实是真正执行的是bash

21fc56e914e3204df36d3bb80341fcd0.png

给脚本增加一个权限可以使用绝对路径来进行执行脚本

5a7c721cacd47107ee7c4b98b4c33e1d.png

sh -x 脚本名称  可以查看脚本执行的过程 sh -n 脚本名称 可以查看脚本有没有语法错误

3.date命令用法

常用格式

date +%Y-%m-%d, date +%y-%m-%d 年月日

date +%H:%M:%S = date +%T 时间

date +%s 时间戳

date -d @1504620492

date -d "+1day" 一天后

date -d "-1 day" 一天前

date -d "-1 month" 一月前

date -d "-1 min" 一分钟前

date +%w, date +%W 星期

cc289d17b04fb36c1438b6a2643f42fc.png

4.shell脚本中的变量

当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替(比如a=jdjjdjdddx)

使用条件语句时,常使用变量 if [ $a -gt 1 ]; then ... ; fi

引用某个命令的结果时,用变量替代 n=wc -l 1.txt

写和用户交互的脚本时,变量也是必不可少的 read -p "Input a number: " n; echo $n 如果没写这个n,可以直接使用$REPLY

内置变量 $0, $1, $2… $0表示脚本本身,$1 第一个参数,$2 第二个 .... $#表示参数个数

数学运算a=1;b=2; c=$(($a+$b))或者$[$a+$b]

5.shell脚本中的逻辑判断

if命令的格式:

格式1:if 条件 ; then 语句; fi

格式2:if 条件; then 语句; else 语句; fi

格式3:if …; then … ;elif …; then …; else …; fi

逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(=); -le(<=);-eq(==); -ne(!=) 注意到处都是空格

逻辑判断符号:

符号

释义

对应单词

-gt

大于

greater than

-lt

小于

ess than

-ge

大于或等于

greater than or equal

-le

小于或等于

less than or equal

-eq

等于

equality

-ne

不等于

inequality

可以使用 && || 结合多个条件

if [ $a -gt 5 ] && [ $a -lt 10 ]; then

if [ $b -gt 5 ] || [ $b -lt 3 ]; then

1).f 条件 ; then 语句; fi

566d444a3684ba4108cf7e1c525189b7.png

8a0f2700e4e1a356e68863d9a0d39209.png

2).使用if 条件; then 语句; else 语句; fi​​​​​​​

1b7faebafb2146fa5357a61de3025005.png

3).if …; then … ;elif …; then …; else …; fi

338e62ebf9895791f0b2c434c3ca2a13.png

6.文件目录属性判断

[ -f file ]判断是否是普通文件,且存在

[ -d file ] 判断是否是目录,且存在

[ -e file ] 判断文件或目录是否存在

[ -r file ] 判断文件是否可读

[ -w file ] 判断文件是否可写

[ -x file ] 判断文件是否可执行

判断是否是普通文件,且存在: [ -f file ]

3701a2eab0798ed982abc2ee9b90ad67.png

判断是否是目录,且存在: [ -d file ]

b94f768afe3a6b69b334f34d2980dc21.png

并且 &&   或者 ||​​​​​​​

bcdb345cd64d4d2ca1411bb4ce8a5a7f.png

7.if 特殊用法

if [ -z "$a" ] 逻辑条件是:变量a的值为空

if [ -n "$a" ] 逻辑条件是:变量a的值不为空

if grep -q '123' 1.txt; then 逻辑条件是:1.txt中含有'123'的行

if [ ! -e file ]; then 逻辑条件是:文件不存在

圆括号与方括号的区别:

if (($a<1)); then … 等同于 if [ $a -lt 1 ]; then…

[ ] 中不能使用,==,!=,>=,<=这样的符号

常见的一些用法注意:

if -z或者if -n 都不能作用在文件上,只能作用在变量上

if [ -z "$a" ] 这个表示当变量a的值为空时会怎么样

!-z=-n

!-n=-z

7818509b980298103123c3992bf7a06f.png

8.case 判断

case 变量名 in

value1)

command

;;

value2)

command

;;

*)

commond

;;

esac

如果case中的某个value是一样的,我们可以这样写:

在case程序中,可以在条件中使用 |,表示或的意思,

比如

2|3)

command

;;

e8061c1ec3e001f661e4394d475b10ea.png

9.for循环

重复执行一系列命令在 编程中很常见。通常你需要重复一组命令直到达到某个特定条件,比如处理某个目录下的所有文件、系统上的所有用户或者是某个文本文件中的所有行。

常见的两种循环,在脚本中普遍被用到。

for循环

while循环

07d7f14158a55d80b1a3eb2870dd0a19.png

f1fd2176725e749f16a33433c714e5f0.png

10.while循环

语法 while 条件; do … ; done

fd3dd76625cd9b79f6f44d11deb23111.png

11.break跳出循环

break 常用于循环语句中,跳出整个循环语句,直接结束所有循环​​​​​​​

d07187da2419912f664281db791e875f.png

12.continue结束本次循环

忽略continue之下的代码,直接进行下一次循环

670bdb018e68e87cbce910dffba262f0.png

13.exit退出整个脚本

exit可以定义退出的数值,可以用于确定脚本运行到什么地方的时候,结束​​​​​​​

04bbf7f81ae80f66fcdfc2151c9b9069.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值