linux逻辑或的用法,第三课 Linux逻辑运算符
*逻辑运算符
事件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逻辑运算符相关推荐
- Linux云自动化运维第三课
Linux云自动化运维第三课 一.正则表达式 1.匹配符 * ###匹配0到任意字符 ? ###匹配单个字符 [[:alpha:]] ###匹配单个字母 [[:lower:]] ###匹配单个小写字母 ...
- Linux SDIO WIFI Marvell8801/Marvell88w8801(三) --- Linux驱动以及组件的使用
代码工程的GITHUB连接:点进进入GITHUB仓库 https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi ...
- 第三课.Linux代码编辑器
第三课目录 vi/vim vi/vim简介 vi的模式 vi在命令模式下的操作 vi在底线命令模式下的操作 Visual Studio Code Git git简介 关于git的故事 git的使用 v ...
- Linux就该这么学-第三课
ok,第三节课来了,命令已经看了好几遍了,但是每一遍都有不同的发现,接下来跟着老刘的最新课程学习新手必须掌握的命令. 首先介绍了 Ⅰ 常用系统的工作命令 echo 显示字符串 ...
- linux设置共享权限设置命令,Linux系列知识详解(三)--------- Linux链接命令和权限管理命令...
Linux系列知识详解(三)--------- Linux链接命令和权限管理命令 一:链接命令ln 简介:什么是链接命令?链接命令分为软链接和硬链接.其中软链接产生的新文件是以路径的形式表示原文件,类 ...
- java ean13 计算_实训java第三课 for 逻辑运算符 条件判断 商品条形码Ean-13验证码生成...
package com.tarena.day03; public class SwitchDemo { /** * Switch */ public static void main(String[] ...
- linux下grep命令用法,全面详解linux下grep命令的用法
学linux系统,grep这个命令是必须要掌握的.grep命令是用来查找文件或标准输出中匹配的行,它的强大之处在于它支持正则表达式.日常工作中,grep绝对是用的最多的命令之一. 注:本文只介绍gre ...
- linux安装光盘制作工具,(三)Linux平台多操作系统安装盘制作工具
# 目录 [TOC] # 概述 该工具可用于自动制作多操作系统安装盘,同时可用于对安装盘的分区进行管理. ![title](/api/file/getImage?fileId=5dde396256fe ...
- Linux Shell nohup命令用法(内含代码演示)
一.Linux Shell nohup命令用法 在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: ...
最新文章
- 查看 python 的版本 以及 python 的安装位置路径
- 阿里云云原生中间件 2021 年春季校招实习启动啦~
- halcon edges_sub_pix算子
- 设置mysql表myisam_mysql myisam 优化设置设置
- 纯CSS导航栏下划线跟随效果
- win 10安装MySQL
- 软件开发所需要的十三个文档
- 计算机文化基础知识点第十一版,计算机文化基础知识点总结(经典版) 考试专用.doc...
- 微信朋友圈点赞和评论测试用例
- Windows 下使用 Mingw32-make 来执行 Makefile示例
- 耐心维修日本原装进口,美国优派气象专用显示器4k
- 关于创业公司初期的股份
- 计算机专业是朝阳还是夕阳?
- 两端分散对齐怎么设置_Word文档两端对齐分散对齐有哪些设置方法
- orb-slam系列 LoopClosing线程 ComputeSim3(十一)
- 前端开发常见笔试题(附答案)
- python爬虫微信_搜狗微信采集 —— python爬虫系列一
- h5网页服务器选择,h5制作选择虚拟主机还是服务器
- HttpClient---NameValuePair参数问题
- 川大计算机差额复试比例,四川大学研究生复试比例
热门文章
- SimpleDateFormat 线程不安全原因及解决办法
- 寒门问题少年到计算机博士,硅谷穷小子是如何成为“创业之神”
- 任正非:华为的岗位没有年龄限制;腾讯微博将于9月28日停止运营;微软关闭Visual Studio Online|极客头条
- 每天只睡 4 小时!大佬们都这么拼吗?
- AI ProCon 2020 圆满落幕,百位专家与万名开发者共同拉开人工智能新篇章
- 作为一个非天才型选手,普通程序员如何升级打怪?
- 300 行代码带你秒懂 Java 多线程!| 原力计划
- 当数据处理做不到实时,应该怎么办?
- 病毒详解及批处理病毒制作:自启动、修改密码、定时关机、蓝屏、进程关闭...
- 成为一名斜杠程序员,你还差点什么?