shell脚本基础知识梳理<三>:条件测试与比较、流程控制 if

一、条件测试与比较
1、test 测试表达式 常用
test -f file && echo true||echo false
2、[ 测试表达式 ] 特别常用
[ -f file ]&& echo true||echo false
3、[[ 测试表达式 ]]
二、流程控制

1、流控制语句 if
实例1
#!/bin/bash
#获取uid=0(root)中的0;
id=id | awk -F ‘[=(]‘ ‘{print $2}‘
echo "your user id is:$id"
if [ $id -eq 0 ]
then
echo "root"
else
echo "not root"
fi
实例2:判断登录的用户
#!/bin/bash
#$#是添加到shell 参数个数
if [ $# -eq 1 ] #或 [[ $#==1 ]] 或 (($#==1))
then
if who|grep $1 >/dev/null
then
echo $1 is active.
else
echo $1 is not active.
fi
else
echo "Usage: $0 <username>"
exit 1
fi
~
执行后的结果
[[email protected] shell]# sh if-if.sh root
root is active.
[[email protected] shell]# sh if-if.sh zabbix
zabbix is not active.
[[email protected] shell]# sh if-if.sh
Usage: if-if.sh <username>
[[email protected] shell]#
实例3 if-elif..else-fi
#!/bin/bash
##if-elif..else-fi
read -p "how lod are you? " age
#使用shell算数运算符(())进行条件测试
if ((age<0||age>120));then #[[ age < 0 || age > 120 ]]
echo "out of range !"
exit 1
fi
if ((age>=0&&age<13));then
echo "child!"
elif ((age>=13&&age<20));then
echo "callan!"
elif ((age>=20&&age<30));then
echo "P iii"
elif ((age>=30&&age<40));then
echo "P IV I"
else
echo "Sorry I asked."
fi
实例4
#!/bin/bash
##if 语句可以嵌套使用
file=$1
[ $# -ne 1 ] && echo "Usage: $0 <filename>" && exit 1
#错误的写法 [ $# -ne 1 ] && echo "Usage: $0 <filename>" ; exit 1 这样";" 不管前面的判断是否正确都会执

if [ -d $file ]
then
echo "$file is a directory"
elif [ -f $file ]
then
if [ -r $file -a -w $file -a -x $file ];then
echo "you have (rwx) permissioon on $file."
else
echo "$file is file."
fi
else
echo "$fles is neither a file nor a directory."
fi
执行结果
[[email protected] shell]# vim if-elif-if-else.sh
[[email protected] shell]# sh if-elif-if-else.sh liu
you have (rwx) permissioon on liu.
[[email protected] shell]# sh if-elif-if-else.sh liub
liub is a directory
[[email protected] shell]# touch qq
[[email protected] shell]# sh if-elif-if-else.sh qq
qq is file.
[[email protected] shell]#

原文地址:https://blog.51cto.com/14294148/2434481

时间: 2024-10-13 02:41:59

shell脚本基础知识梳理<三>:条件测试与比较、流程控制 if的相关文章

什么是Shell?Shell脚本基础知识详细介绍

这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 它虽然不是Linux系统核心

shell脚本中的算术运算和条件测试语句

shell脚本编程实现算术运算有: +.- *./ 模运算 % 乘方 ** 或 ^ 特殊的增强型算术运算: ++ -- 算术运算方法 1.let命令 VAR=算术表达式 将算术表达式先行进行算术运算并将运算结果保存到变量VAR中 2.VAR=$[算术表达式]   []内如果引用变量,可以使用$ 也可以省略掉$ 3.VAR=$((算术表达式)) 即把[]换成(()) 4.expr ARG1 ARG2 ARG3 ARG1和ARG3必须是数值,ARG2必须是运算符 5.echo "算术表达式"

shell 脚本基础知识详细介绍(二)

SimonSu 博客 评论墙 读者墙 链接 关于 linux中的sh脚本语法 玩linux都知道sh脚本的方便,但如何编写sh脚本却是像我这样的新手和菜鸟的难题.能不能编写得出来是一回事,了不了解又是另一回事.抱着好好学习,天天向上的精神,大家有空就看看吧,没有坏处的.下面来抄来一大段sh脚本的语法说明.慢慢看: 一.开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.当编写脚

shell脚本基础知识

一.什么是shell 简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具.实际上,在shell和计算机硬件之间还有一层东西那就是系统内核了.打个比方,如果把计算机硬件比作一个人的躯体,而系统内核则是人的大脑,至于shell,把它比作人的五官似乎更加贴切些.回到计算机上来,用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作. 试验环境为linux发布版本(Redhat/CentOS)

shell脚本基础知识(下)

七.shell中的case判断 格式: case  变量名 in value1) command ;; value2) command ;; *) commond ;; esac 在case程序中,可以在条件中使用|,表示或的意思, 比如: 2|3) command ;; 当变量为2或者3时,执行该部分命令. 应用举例: [ [email protected]  shell]# cat test7.sh  #!/bin/bash read -p "请输入学生的成绩: " num n1=

通过shell脚本实现MySQL备份并恢复,for in流程控制

从3306备份数据库,还原到3307数据库上,通过shell脚本的for in流程控制实现 #!/bin/bash my_date=`date +%Y%m%d` my_time=`date +%H%M` my_date_yesterday=`date +%Y%m%d --date='1 days ago'` echo "----------------------------------------------------" echo "$my_date $my_time&q

shell脚本基础进阶(三)----流程控制语句

流程控制语句 控制语句,即用来实现对程序流程的选择.循环.转向和返回等进行控制的语句.Bash中的控制语句有几种控制语句?额,小编也没统计过,不清楚哎!!按照百度百科的分类(选择语句,循环语句,转向语句)总结了几个.然后看下吧! 一.选择语句 1.if--else--fi 格式: (1)if CONDITION;then     if-true-doing    fi  (2)if CONDITION;then     if-true-doing    else     if-false-doi

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执

Shell脚本基础(一)

前言:随着Linux系统在企业中的应用越来越多,服务器的自动化管理也越来越变得重要,在一些复杂的Linux维护工作中,大量的重复性的输出和交互式操作不但费时费力,而且容易出错,所以Shell脚本,可以批量处理,自动化完成一系列维护工作,大大减轻管理员的负担. 一,Shell脚本基础知识1,编写第一个shell脚本1),vim first.sh[[email protected] ~]# mkdir /shell //创建一个shell目录[[email protected] ~]# vim fi