linux逻辑表达式,循环结构,函数
1.bash 算数运算
+ - * / %
+=
-=
*=
/=
以上4种常用let ...
++/--sum;sum++/--
算数运算 1.let A=2+3
2.$[2+3]
3.$((2+3))
4.expr
2.语句的逻辑运算
&& 与 A&&B
|| 或 A||B
! 非 !A
逻辑与(&&)和逻辑或(||) 均是短路操作符
所谓短路操作符就是如果A语句足够完成对整个逻辑与 或者 逻辑或 语句的真假判断,任凭B语句写地多么高明高超高效都不会再执行了
例如 对于逻辑与(&&) A&&B 如果A是假,无论B是什么 A&&B语句的结果都为假 B不再执行
对于逻辑或(||) A||B 拂过A是真,无论B是什么 A||B语句的结果都为真 B不再执行
总结:如果A发生 则执行 B;如果A未发生则不执行B 可写成 A&&B
如果A不发生则执行B;如果A发生则不执行B 可写成 A||B
记:1.未发生理解为假,发生理解为真;
2.选择B不执行的条件判断句
3.若是A发生则是A||B
若是A未发生则是A&&B
注意:ping命令在Linux下不带任何参数是一直执行的 所以 用选项C来指定ping几个包
ping -c1 -w1 172.16.17.29
3种逻辑运算符的优先级
!>&&>||
注意,使用逻辑运算符时要慎用(),因为当前shell会为()中的内容打开一个子shell执行其内容 有时这会带来很×××烦
A&&B||C 表示如果A为真,则执行B 如果A为假,则执行C
更多组合具体分析
3.条件测试:
判断某个命令是否可以执行成功,并且以此作为后面命令执行是否进行的条件
有条件的执行,需要判断测试条件是偶满足
4.bash中如何进行条件测试
测试表达式:1.[空格condition空格]
2.[[空格condition空格]]
3.test condition
条件测试种类:
1.整数测试 condition:1.num1空格-eq空格num2 num1是否等于(equal)num2
2.num1空格-gt空格num2 num1是否大于(greater than)num2
3.num1空格-ge空格num2 num1是否大于等于(greater than or equal)num2
4.num1空格-lt空格num2 num1是否小于(less than)num2
5.num1空格-le空格num2 num1是否小于等于(less than or equal)num2
6.num1空格-ne空格num2 num1是否不等于于(no equal)num2
2.字符串测试 conditon:1.str1空格==|=空格str2 串str1是否匹配串str2
2.str1空格!=空格str2 串str1是否不匹配串str2
3.-z空格"string" 串string是否为空
4.-n空格“string” 串string是否不为空
3.文件测试 condition:1.-e空格file file是否存在
2.-f空格file file是否为普通文件
3.-d空格file file是否为目录
4.-L|h空格file file是否为一个链接(软链接)
5.-b空格file file是否为块设备文件
6.-c空格file file是否为字符设备文件
7.-r空格file 当前用户或shell是否对文件有读权限
8.-w空格file 当前用户或shell是否对文件有写权限
9.-x空格file 当前用户或shell是否对文件有执行权限
注意:linux下目录与文件不能重名,使用-e file判断文件或目录存在更好
组合条件测试
[空格CONDITION1空格-aCONDITION2空格..]=[空格CONDITION1空格]&&[空格CONDITION2空格].. 与 条件同时满足时为真
[空格CONDITION1空格-oCONDITION2空格..]=[空格CONDITION1空格]||[空格CONDITION2空格].. 或 条件至少有一个满足时为真
!空格[空格CONDITION空格] 非 取反
5.选择分支(使用if...fi)
1.单选择分支
if condition;then
statement
...
fi
2.双选择分支
if condition;then
statement
...
else
statement
...
fi
3.多选择分支
if condition1;then
statement
...
elif condition2;then
statement
...
elif condition3;then
statement
...
...
...
else
statement
...
fi
选择分支(使用case)
case $VARIABLE_NAME in]
value1)
statement1
;;
value2)
statement1
;;
value3)
statement1
;;
*)
statement1
;;
esac
Attention
1.每一个分支必须以“;;”结束
2.value中可以使用..|..或
3.*代表匹配除上述列出value1..n的任何字符,所以如果传递进来的参数是*,必须使用转义\*以示跟关键字“*"不同
5.for VARIABLE_NAME in LIST;do
statement1
..
done
LIST三种形式
1.{1..10}
2.seq 1 10 需要带命令替换··反引号 seq 1 2 10 带3个参数表示从1开始,以2为增幅,到10结束
3.1 2 3 4 5
4.$VARIABLE_NAME 将遍历的内容存到一个变量里面并引用
6.while CONDITION;do
statement1
..
done
Attention:1.条件满足时进入循环
2.循环执行的语句一定要包含改变CONDITION的语句
while read VARIABLE_NAME ;do
statement1
..
done</etc/passwd
Attention:1.当文件为空 read VARIABLE_NAME 此命令的退出码不为0 即退出循环
2.当文件遍历到最后一行后,再遍历,read VARIABLE_NAME的执行结果也不为0 即退出循环
7.until CONDITION;do
statemeng1
..
done
Attention:1.条件满足是退出循环
2.2.循环执行的语句一定要包含改变CONDITION的语句
8.循环控制条件
break 中断循环,而执行循环体后面的语句
continue 中断当前这一次循环,提前进入下一次循环
9.脚本如何接受参数
#bash shell a b c...
在shell文件中使用
$1来引用第1个参数,$2来引用第2个参数,以此类推到第10个之后有所改变,${10}来引用第10个参数,...,${11}来引用第11个参数
10.设初值/默认值: FILE=$[FILE:-/etc/issue]
当变量FILE为空时,将/etc/issue赋值给FILE
当变量FILE不空时,将FILE本身赋给自己
函数 function
目的:代码重用
做法:在主程序的某个位置调用函数
定义函数(两种格式)
1.function F_NAME空格{
body
return 0;成功
1-255;失败
}
2.F_NAME空格{
body
return 0;成功
1-255;失败
}
调用函数
F_NAME argument1 argument2
Attention:函数体中调用函数参数,需要使用$1 $2...做法与shell-script调用外部参数类似
转载于:https://blog.51cto.com/bloodhero/789571
linux逻辑表达式,循环结构,函数相关推荐
- JavaScript入门→HTML引用JS、变量、表达式操作符、数组Array数组对象、选择结构循环结构、函数、JavaScript与JAVA区别
插入引用JS 变量 表达式 操作符 数组 选择判断结构 循环结构 函数 JavaScript与JAVA区别 绝学无忧. 唯之与阿,相去几何? 善之与恶,相去何若? 人之所畏,不可不畏. 荒兮其未央哉! ...
- Java基础学习笔记(基本规范、变量定义、运算符、分支/循环结构、函数)
文章目录 Java概述与环境搭建 Java历史 Java语言特点 Java执行机制 安装jdk 环境变量配置 乱码问题解决 基本规范 简单Java代码 编译运行 注释 语法规则 变量类型 声明方式 基 ...
- C语言基础1(数据类型、常变量、运算符、基本语句、选择结构、循环结构、数组、字符串、函数、指针)
数据类型及运算 数据类型 一.整形(int) 整形变量的定义.输入和输出 打印格式 含义 %d 输出一个有符号的10进制int类型 %o(字母o) 输出8进制的int类型 %x 输出16进制的int类 ...
- Linux嵌入式学习---c语言之循环结构
Linux嵌入式学习---c语言之循环结构 一.while语句循环 1.1一般形式 1.2累加求和 二.do...while语句循环 2.1do....while语句一般形式 2.2do....whi ...
- part4-2 流程控制二(循环结构,while、for循环,列表推导式、生成器推导式,常用工具函数,控制循环结构,4个简单实例)...
循环语句在循环条件满足时,可反复执行某一段代码,这段被重复执行的代码称为循环体.在循环体中,需要在合适的时候把循环条件设置为假,从而结束循环:否则循环一直执行下去形成死循环.循环语句通常包含如下4个部 ...
- 循环数组函数c语言,C语言练习题2(分支结构循环结构数组函数2009-2012二级真题)..doc...
C语言练习题2(分支结构循环结构数组函数2009-2012二级真题). C语言练习题(二) 一 选择题 1.有以下程序 #include void main() { int a: canf(" ...
- linux设置程序循环,linux shell编程学习笔记(7)流程控制之循环结构
2.1.for循环 1)遍历/列表式循环 --根据变量的不同取值,重复执行命令序列 格式: for 变量名 in 值列表 do 命令序列 done 示例:输出在线的主机IP #!/bin/bash ...
- 【C语言】一维数组排序(函数,数组和循环结构语句)
编写程序,实现一维数组排序.对一维数组按照从小到大的顺序排序.程序定义函数sort()来实现数组a的排序.函数原型如下: void sort(int a[], int n); 数组元素的输出调用Pri ...
- day05循环结构while循环嵌套控制条件语句方法(函数)
循环结构:while循环 语句定义格式: 基本格式: while(判断条件语句){ 循环体语句; ...
- 分支函数c语言,C语言练习题2(分支结构 循环结构 数组 函数2009-2012二级真题 ).doc...
C语言练习题2(分支结构 循环结构 数组 函数2009-2012二级真题 ) C语言练习题(二) 一 选择题 1.有以下程序 #include void main() { int a: canf(&q ...
最新文章
- 惊艳!基于RNN的AI写词机竟能写出如此优秀的情诗!
- 实验室博士背着导师私发了两篇SCI,导师知道了会怎样?
- 吐血整理:论文写作中注意这些细节,能显著提升成稿质量
- Rserve 实现java与R的互通
- MySQL使用EXPLAIN分析SQL
- MongoDB学习总结(一) —— Windows平台下安装
- SAP Spartacus的CMSPageGuard
- Android 开发学习资源
- 贝叶斯机器学习:经典模型与代码实现
- c语言的数据类型复数型,C语言数据类型
- 在java中对null的理解
- 记:Ubuntu 14.04 安装32位库支持库失败
- android callmanager.java,如何使用Mobile-SDK-Android正确注销DJISDKManager和SDKManagerCallback应用程序?...
- 基于DS3231实时时钟模块的stm32简易闹钟
- 【Pix4d精品教程】Pix4DMapper 4.4.10/4.4.12/4.5.6经典手把手图文安装教程(附安装包下载)
- 上位机和下位机计算机联锁,上位机下位机各是什么意思?上位机下位机介绍
- 区块链三种网络地址btc\eth\fil
- 正则表达式大全(超详细正则校验内容)
- 手机便签怎么导出到另一个手机 便签内容一键传输方法
- 单目标优化算法测试函数python绘制及相关代码