*逻辑运算符

事件1&&事件2 :事件1 并且事件2成立,整个事件才成立

事件1 ||事件2 :事件1 或者事件2 成立, 整个事件才成立

事件1 -a事件2:and啊:

事件1 -o事件2 :or

示例;

2echo "请输入一个数"

3readonly num

4 #if [[$(expr $num%3)==0]||expr $num%5==0]]

if[$(expr $num%3)==0]||[expr $num%5==0]

5then

6echo"3或5的倍数"

7else

8echo"不是3或5的倍数 "

9fi

例题 判断输入的年份是否石闰年

>能被4整除 并且不能被100 整除

>能被400整除

1echo"请输入年份"

2read year

3if[expr $year %4==0 -a expr $year %100!=0] || [ expr $year % 400==0]

4then

5 echo"闰年"

6else

7 echo"平年"

8fi

**case分支

case 变量 in

值1)

代码

;;

值2)

代码

;;

值3)

代码

;;

.......

;;

case

用法分析:根据变量存储的值和下面的值相比较,如果相等,那么就执行相应的只里面的代码

输入两个在整数,再输入一个运算符,根据运算符的输入对两个数进行运算.使用case语句完成

**while循环

while[条件]

do

循环体

done

案例分析

4 i=1

5sum=0

6while [ $i le 100 ]

7do

8 let sum=sum+i

9 let i++

10done

11echo "sum=${sum}"

用法分析:当while后面的条件成立,就执行do和done 之间的语句,执行玩这个语句之后再回过头去判断while后面的条件是否成立,如果条件成立,就继续执行后面的语句,直到条件不成立,循环退出

例题

**

**环境变量

$#:代表可执行命令后面的参数个数

$0:代表可执行命令本身

$1:代表可执行命令后后面的第一个参数

$2:代表可执行命令后后面的第2个参数

....

a写一个shell脚本,./xx.sh 12!

思路分析

1>拿到第一个参数的值12!

2>通过字符串截取拿到12

3>while循环求乘机

4>输出成绩

b 写一个shell解析器.解析shell脚本,要考虑到文件是否存在,该文件是否普通文件等各种问题

1>参数的个数

2>如果是一个参数在进行处理

3>判断文件是否存在

4>判断该文件是否是普通文件

5>给文件加上执行权

6>运行文件

7>让命令全局有效

mv 33.sh myrun

sudo cp myrun /bin/

excuteFile()

{

file+$1

echo "$file"

chmod +x $file

./$file

}

compareWithSh()

{

file=$1

length=${#file} #整个文件名的长度

let start=length-2

suffix=${file:start:2}

if [ $suffix = "sh" ]

then

echo"1"

else

echo"0"

fi

}

if [ $# -le 0 ]

then

echo "wainng:run what????"

file=ls./

for file in ${files}

do

if [ compareWithSh $file==1 ]

then

printf "$file\t"

fi

done

printf "\n"

printf "select file to excute:"

read exefile

excuteFile $exefile

elif [ $# -eq 1 ]

then

file=$1

if [ -e ./${file} ]

then

if [ -f ./${file} ]

then

if [ compareWithSh $file==1 ]

then

excuteFile $file

else

echo "error:${file}dose have sh suffix"

fi

else

echo "error:${file} is not normal file"

fi

else

echo "warning:${file} does not exsit"

fi

else

echo"error:too much arguments"

fi

**for 循环

语法

for 变量 in参数列表

do

循环体

done

例如

1for value in 1 2 3 4

2do

3 echo "$value"

4done

用法分析: 依次用参数列表里面的值对变量进行赋值.每次赋值之后,执行do和done之间的代码,直到参数列表没有参数为变量赋值为止

***数组

1>数组整体初始化

arr=(1 2 3 4 5)

2>访问数组元素

0下标代表都一个袁术

echo "0下标的元素=${arr[0]}"

echo "整个数组里面的值=${arr[@]}"

echo "整个数组里面的值${arr=[*]}"

3>数组单个赋值

arr1[0]=1

arr1[1]="hello"

arr1[2]="c"

echo "arr1=${arr1[@]}"

注意点: 数组定义为具体下标的元素进行赋值时,可以隔着定义

例如

arr2[1]="hello"

arr2[3]="world"

echo "arr2=${arr2[@]}"

echo "aee2[0]=${arr2[0]}"#该位置的元素没有定义,默认为空

例题 :自定义一个所欲元素都是整数的数组,求你面所有元素的和,用for循环完成

1arr=(1 2 3 4 5)

2sum=0

3for value in ${arr[ @ ]}

4do

5 let sum+=value

6done

7echo "${sum}"

写一个命令自动生成当天文件

1>获取当年当月当日的时间信息

2>用$#去判断参数的个数

3>如果个数为0 ,创建当年;如果个数为1 ,判断参数是否符合-y,-m,-d.

mv 38.sh myfile

sudo cp myfile /bin/

每天早上过来运行一下 source myfile

linux逻辑或的用法,第三课 Linux逻辑运算符相关推荐

  1. Linux云自动化运维第三课

    Linux云自动化运维第三课 一.正则表达式 1.匹配符 * ###匹配0到任意字符 ? ###匹配单个字符 [[:alpha:]] ###匹配单个字母 [[:lower:]] ###匹配单个小写字母 ...

  2. Linux SDIO WIFI Marvell8801/Marvell88w8801(三) --- Linux驱动以及组件的使用

    代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...

  3. 第三课.Linux代码编辑器

    第三课目录 vi/vim vi/vim简介 vi的模式 vi在命令模式下的操作 vi在底线命令模式下的操作 Visual Studio Code Git git简介 关于git的故事 git的使用 v ...

  4. Linux就该这么学-第三课

    ok,第三节课来了,命令已经看了好几遍了,但是每一遍都有不同的发现,接下来跟着老刘的最新课程学习新手必须掌握的命令.      首先介绍了     Ⅰ 常用系统的工作命令   echo   显示字符串 ...

  5. linux设置共享权限设置命令,Linux系列知识详解(三)--------- Linux链接命令和权限管理命令...

    Linux系列知识详解(三)--------- Linux链接命令和权限管理命令 一:链接命令ln 简介:什么是链接命令?链接命令分为软链接和硬链接.其中软链接产生的新文件是以路径的形式表示原文件,类 ...

  6. java ean13 计算_实训java第三课 for 逻辑运算符 条件判断 商品条形码Ean-13验证码生成...

    package com.tarena.day03; public class SwitchDemo { /** * Switch */ public static void main(String[] ...

  7. linux下grep命令用法,全面详解linux下grep命令的用法

    学linux系统,grep这个命令是必须要掌握的.grep命令是用来查找文件或标准输出中匹配的行,它的强大之处在于它支持正则表达式.日常工作中,grep绝对是用的最多的命令之一. 注:本文只介绍gre ...

  8. linux安装光盘制作工具,(三)Linux平台多操作系统安装盘制作工具

    # 目录 [TOC] # 概述 该工具可用于自动制作多操作系统安装盘,同时可用于对安装盘的分区进行管理. ![title](/api/file/getImage?fileId=5dde396256fe ...

  9. Linux Shell nohup命令用法(内含代码演示)

    一.Linux Shell nohup命令用法 在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: ...

最新文章

  1. 查看 python 的版本 以及 python 的安装位置路径
  2. 阿里云云原生中间件 2021 年春季校招实习启动啦~
  3. halcon edges_sub_pix算子
  4. 设置mysql表myisam_mysql myisam 优化设置设置
  5. 纯CSS导航栏下划线跟随效果
  6. win 10安装MySQL
  7. 软件开发所需要的十三个文档
  8. 计算机文化基础知识点第十一版,计算机文化基础知识点总结(经典版) 考试专用.doc...
  9. 微信朋友圈点赞和评论测试用例
  10. Windows 下使用 Mingw32-make 来执行 Makefile示例
  11. 耐心维修日本原装进口,美国优派气象专用显示器4k
  12. 关于创业公司初期的股份
  13. 计算机专业是朝阳还是夕阳?
  14. 两端分散对齐怎么设置_Word文档两端对齐分散对齐有哪些设置方法
  15. orb-slam系列 LoopClosing线程 ComputeSim3(十一)
  16. 前端开发常见笔试题(附答案)
  17. python爬虫微信_搜狗微信采集 —— python爬虫系列一
  18. h5网页服务器选择,h5制作选择虚拟主机还是服务器
  19. HttpClient---NameValuePair参数问题
  20. 川大计算机差额复试比例,四川大学研究生复试比例

热门文章

  1. SimpleDateFormat 线程不安全原因及解决办法
  2. 寒门问题少年到计算机博士,硅谷穷小子是如何成为“创业之神”
  3. 任正非:华为的岗位没有年龄限制;腾讯微博将于9月28日停止运营;微软关闭Visual Studio Online|极客头条
  4. 每天只睡 4 小时!大佬们都这么拼吗?
  5. AI ProCon 2020 圆满落幕,百位专家与万名开发者共同拉开人工智能新篇章
  6. 作为一个非天才型选手,普通程序员如何升级打怪?
  7. 300 行代码带你秒懂 Java 多线程!| 原力计划
  8. 当数据处理做不到实时,应该怎么办?
  9. 病毒详解及批处理病毒制作:自启动、修改密码、定时关机、蓝屏、进程关闭...
  10. 成为一名斜杠程序员,你还差点什么?