linux之shell之if、while、for语句介绍
一、基本判断条件
1)逻辑运算符
-a expr1 -a expr2 逻辑与
-o expr1 -o expr2 逻辑或
! !expr1 逻辑非
2)数值判断
-eq num1 -eq num2 是否相等
-ne num1 -ne num2 是否不相等
-gt num1 -gt num2 是否大于
-ge num1 -ge num2 是否大于等于
-lt num1 -lt num2 是否小于
-le num1 -le num2 是否小于等于
3)字符串判断
= str1 = str2 字符串是否相等
!= str1 != str2 字符串是否不等
=~ str1 =~ str2 str1包含str2,注意整个条件放在"[[]]"之间
-n -n str1 字符串长度是否不等于0
-z -z str2 字符串长度是否等于0
4)文件判断
-r -r filename 文件是否存在且可读
-w -w filename 文件是否存在且可写
-s -s filename 文件是否存在且长度非0
-f -f filename 文件是否存在且是普通文件
-d -d filename 文件是否存在且是一个目录
二、if判断语句基本格式:
1)if判断语句基本格式1:
if [ 判断条件 ]
then
commands
else
fi
举例:
#数值判断:
read -p "enter a number(0/1): " num
if [ $num -eq 1 ]
then
echo "true"
else
echo "false"
fi
#字符串判断:
str1="this is a string"
if [[ "$str1" =~ "this" ]]
then
echo "true"
else
echo "false"
fi
#文件判断:
if [ -f ./test1.sh ]
then
echo "true"
else
echo "false"
fi
2)if判断语句基本格式2:
if [ 判断条件 ]; then
commands
elif [ 判断条件 ]; then
commands
…
else
commands
fi
#举例:
read -p "enter the score: " score
if [ "$score" -lt 0 ]; then
echo "enter a score in 0~100"
elif [ "$score" -gt 100 ]; then
echo "enter a score in 0~100"
elif [ "$score" -lt 60 ]; then
echo "fail score"
elif [ "$score" -lt 70 ]; then
echo "pass score"
elif [ "$score" -lt 80 ]; then
echo "fair score"
elif [ "$score" -lt 90 ]; then
echo "good score"
else
echo "excellent score"
fi
#注意:
1、 if与[]之间必须有空格
2、判断条件前后必须有空格
3、then如果和if在同一行要用;分开
4、判断条件含有变量,要用双引号引起来
三、while循环语句基本格式
1)while循环语句基本格式:
#while [ 判断条件 ]
min=1
max=10
while [ $min -le $max ]
do
echo $min
min=`expr $min + 1`
done
#注意:
1、while与[]之间必须要有空格
2、判断条件前后要有空格
# while((判断条件))
i=1
while(($i<=12))
do
if(($i%4==0))
then
echo $i
fi
i=$(($i+1))
done
#注意:
1、此种形式的内部结构类似c语言
2、注意赋值计算:i=$(($i+1))
四、for循环语句基本格式
1)for循环语句基本格式:
#数字段形式
for i in {1..10}
do
echo $i
done
#详细列出(项数不多)
for i in 'a' 'b' 'c' 'd'
do
echo $i
done
#seq形式 起始从1开始
for i in `seq 10`
do
echo $i
done
#语法循环--有点像C语法
for ((i=1; i<+10; i++));
do
echo $i
done
#对存在的文件进行循环
for shname in `ls *.sh`
do
echo "$shname" | awk -F. '{print $1}'
done
linux之shell之if、while、for语句介绍的更多相关文章
- Shell脚本中执行sql语句操作mysql
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...
- Linux Bash Shell 快速入门
BASH 的基本语法 最简单的例子 —— Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1 ...
- Linux/Unix shell 脚本中调用SQL,RMAN脚本
Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...
- Linux Bash Shell入门教程
Linux 系统根据 "#!" 及该字串后面的信息确定该文件的类型,关于这一问题同学们回去以后可以通过 "man magic"命令 及 /usr/share/m ...
- Linux和Shell教程
文档资料参考: 参考:http://www.runoob.com/linux/linux-tutorial.html 软件下载参考: centos 下载地址:https://www.centos.or ...
- Shell脚本中执行sql语句操作mysql的5种方法【转】
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...
- linux base shell 基础语法
转载 本文主要是基础的基础,希望对大家有所帮助 一.Shell基本类型的变量: (1)Shell定义的环境变量: Shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,用户还可以重新定义这 ...
- “windows的批处理”与“Linux的shell script”的类比学习
从2005年开始,做了将近10年的系统维护,先是做网络接入管理,然后做网络安全与审计,然后做服务器管理等整个网络系统的运营管理:现在又兼着做一些Linux下的视频监控系统的软硬件维护.过程中遇到太多重 ...
- Linux中Shell
Linux中Shell Shell是什么 Shell是一个命令行解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,可以用Shell来启动.挂起.停止.编写一些程序. S ...
- Linux 下shell 编程学习脚手架
linux body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-t ...
随机推荐
- 获取request中的查询参数
//获取request中的查询参数 public static Map<String, Object> getRequestParamsByMap(HttpServletRequest r ...
- oracle 创建一个用户,并且设定只能访问指定的对象
出处:http://www.cnblogs.com/BetterWF/archive/2012/07/03/2574416.html 今天在开发接口时候,需要给接口开发公司提供一个ORACLE 用户, ...
- lucene 查询
csdn blog - Lucene 3.0 的Query Parser(查询语法) ibm developerWorks - 使用 Apache Lucene 2.4.1 搜索文本 osch ...
- SQL联查语句加上order排序之后速度超级慢
项目中使用到了分页查询,形式如下 select * from ( select row_number() over (order by a.id0) as seq,a.* from PMS_T_D_S ...
- 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)
二维数组,锯齿数组和集合 一.二维数组 二维数组:一维数组----豆角二维数组----表格 定义:1.一维数组:数据类型[] 数组变量名 = new 数据类型[数组长度];数据类型[] 数组变量名 = ...
- android自定义View&&简单布局&&回调方法
一.内容描述 根据“慕课网”上的教程,实现一个自定义的View,且该View中使用自定义的属性,同时为该自定义的View定义点击事件的回调方法. 二.定义自定义的属性 在res/valus/ 文件夹下 ...
- Atitit eclipse新特性总结3.1---4.4 4.5
Atititeclipse新特性总结3.1---4.4 4.5 1. Eclipse 4.4 Luna正式发布了.1 1.1. 新版本的Eclipse默认对Java8提供支持1 1.2. 内存分析器 ...
- Android API Guides---OpenGL ES
OpenGL ES Android包含高性能2D和3D图形开放图形库(OpenGL®的).详细而言,OpenGL ES的API支持. OpenGL是一个跨平台的图形API.用于指定的3D图形处理硬件标 ...
- Scrapy系列教程(3)------Spider(爬虫核心,定义链接关系和网页信息抽取)
Spiders Spider类定义了怎样爬取某个(或某些)站点.包含了爬取的动作(比如:是否跟进链接)以及怎样从网页的内容中提取结构化数据(爬取item). 换句话说.Spider就是您定义爬取的动作 ...
- 345. Reverse Vowels of a String【easy】
345. Reverse Vowels of a String[easy] Write a function that takes a string as input and reverse only ...