《shell常用变量计算回想》QX56HEL6分分快三全天计

作者:电脑系统

If单分支语句

l  If单分支语句结构

if 条件测量试验操作

   then 命令类别

fi

if实施成功然后实行then。if没有进行成功,啥都不干

 

name zhangsan

4) 逻辑测量检验

逻辑测量检验

l  格式1:

[ 表达式1 ] 操作符 [ 表达式2 ] …

命令1 操作符 命令2 …

l  常用的测验操作符

-a或&&:逻辑与,“何况”的意味,三个表明式都要实行成功

-o或||:逻辑或,“或然”的野趣,有三个实行成功就能够了

!:逻辑否

 

实例:

[root@poll ~]# [ -d /etc ] && [ -r /etc ] && echo "you can open it"

you can open it

[root@poll ~]# [ -f /etc ] || [ -d /home ] && echo ok

Ok

 

=:字符串内容相符  !=:字符串内容不均等,!号表示相反的意味   -z:字符内容为空

Num=`find $DIR -user $UserName | wc -l`

文件测量试验

l  格式:【 操作符 文件或目录 】

l  常用的测验操作符

-d:测量检验是还是不是为目录(directory卡塔 尔(阿拉伯语:قطر‎

-e:测量试验目录或文件是不是留存(exist卡塔 尔(阿拉伯语:قطر‎

-f:测验是还是不是为文件(file卡塔 尔(英语:State of Qatar)

-r:测量检验当前客户是还是不是可读(read卡塔尔

-w:测量试验当前顾客是或不是可写(write)

-x:测验当前客商是还是不是可实行(excute卡塔 尔(阿拉伯语:قطر‎

 

实例:

[root@poll ~]# [ -d /etc ]

[root@poll ~]# echo $?

0

[root@poll ~]# [ -d /etc/profile ]

[root@poll ~]# echo $?

1

[root@poll ~]# [ -d /etc ]&&echo "yes"    //&&意思是前方施行成功载推行前边

Yes

 

1

p 前后八个表明式都成马上整个测量检验结果才为真,不然为假

if多分支语句

if 条件测量检验操作1

       then 命令体系1

elif 条件测验操作2

       then 命令种类2

else 命令连串3

fi

规范测验操作1施行成功,实施命令连串1;战败则试行尺度测量试验2,条件测量检验2施行成功则实施命令类别2,失利则实行命令连串3。

实例:

[root@poll ~]# vi b.sh

#!/bin/bash

#This is …

read -p " 请输入你的年龄:" one

if [ $one -le 18 ]

        then echo "you are young"

elif [ $one -gt 18 ] && [ $one -le 60 ]

        then echo "you are so happy"

else echo "you are old"

fi

[root@poll ~]# sh b.sh

 请输入你的年纪:12

you are young

[root@poll ~]# sh b.sh

 请输入你的年华:19

you are so happy

 

接下去讲case语句

 

 

常用的操作测验符   -eq:等于(Equal卡塔尔   -ne:不对等(Not Equal卡塔尔   -gt:大于(Greater Than卡塔 尔(英语:State of Qatar)   -lt:小于(Lesser Than卡塔尔国   -le:小于或等于(Lessser or Equal卡塔 尔(英语:State of Qatar)   -ge:大于或等于(Greater or Equal卡塔 尔(英语:State of Qatar)

八.循环调控语句

字符串测量试验

l  格式1:

[ 字符串1 = 字符串2 ]

[ 字符串1 != 字符串2 ]

l  格式2:

[ -z 字符串 ]

 

常用的测验操作符:

=:字符串内容相似

!=:字符串内容不相同

-z:字符串内容为空

 

实例:

[root@poll ~]# echo $LANG

zh_CN.UTF-8

[root@poll ~]# [ $LANG!="en.US" ] && echo "Not en.US"

Not en.US

 

     if 磁盘已用空间>十分之七    then 命令体系   ==》      then 报警  fi    fi

常用的测验操作符

If语句

      shift迁移语句 用于迁移地点变量,将$1~$9依次向左传递

for UserName in $ValidUsers

偏分头测验

l  格式:[ 整数1 操作符 整数2 ]

l  常用的测量试验测量检验操作符

-eq:等于(equal)

-ne:不等于(not equal)

-gt:大于(greater than)

-lt:小于(lesser than)

-le:小于或等于(lesser or equal卡塔尔

-ge:大于或等于(greater or equal卡塔 尔(阿拉伯语:قطر‎

 

实例:

[root@poll ~]# who |wc -l

3

[root@poll ~]# [ `who |wc -l` -gt 5 ] && echo too many

[root@poll ~]# [ `who |wc -l` -gt 2 ] && echo too many

too many

 

-w:测量试验当前的顾客是不是有写的权杖【write】

i=1

标准测量检验

[[email protected] 桌面]# [ `who|wc -l` -le 10 ] && echo "YES" YES

常用的测验操作符

if双分支语句结构

if 条件测验操作

      then 命令体系1

       else 命令连串2

fi

if推行成功,然后推行then。If未有进行成功,推行else

 

实例:

 

[root@poll ~]# cat a.sh

#!/bin/bash

#This is my first shell-script

#2018-03-16

read -p "请输入你的性别:" one

if [ $one = 男 ]

then

echo "you are handsome"

else

echo "you are beautiful"

fi

[root@poll ~]# sh a.sh

请输入你的性别:男

you are handsome

[root@poll ~]# sh a.sh

请输入你的性别:女

you are beautiful

 

[[email protected] ~]#

  1. 例子

基准测验概述

l  对特定的法则进行判别,以调节哪些奉行操作

l  测验的点子

 方法1:test 条件表明式

 方法2:【条件表达式】

l  当条件建登时,测量试验语句的重返值为0,不然为其余数值

 

准绳测试的归类

1、 文件测量试验

2、 整数测量检验

3、 字符串测量试验

4、 逻辑测量检验

 

#a.sh read -p "input:" NUM case "$NUM" in [a-z]|[A-Z])

 例子:判别sshd是还是不是在运行,若已运转则输出提醒音信,不然重新起动sshd服务

Shell编程之标准语句

上学指标:

垄断(monopoly卡塔 尔(阿拉伯语:قطر‎shell脚本法则测量试验

调节if语句编制程序

 

目录结构:

 分分快三全天计划网站 1

 

 

  假设登陆客户数小于或等于10则输出YES

事例1:依次输出3条文字新闻,包含意气风发天中的“Morning”、“Noon”、“Evening”字串

[[email protected] /]# echo $?

 格式:[ 字符串1 = 字符串2 ]

[email protected] ~]# cat a.sh

}

格式:[表达式1]   操作符  [表达式2]  

fi

[[email protected] ~]# ./a.sh input:a it is english [[email protected] ~]# ./a.sh @ input:@ ......... [[email protected] ~]# ./a.sh input:# ......... [[email protected] ~]#

 格式:[ 整数1 操作符 整数2 ]

[[email protected] /]# [ -w /etc/shadow ]

esac

 ≡ 习认为常的测量试验项目    测量试验文件的事态   字符的串相比   整数值比较  逻辑测验   测量试验文件的状态  

done

多重分支语句

 调用该函数总结(12 34卡塔尔国、(56 78卡塔 尔(阿拉伯语:قطر‎的和

[[email protected] /]# [ -L /etc/shadow ]

userdel -r stu$i

 

#!/bin/bash

[[email protected] ~]# cat a.sh #!/bin/bash

[0-9])

这都是一年多早先学的,没悟出后天还可以够再拿出来学一回,顺便分享出去

echo "they are letters"

restart)  echo "restart........"  ;; laod)   echo "laod......."  ;; status)  

adder() {

 格式:test  条件表明式  [原则表明式]

 格式:[ 操作符 文件或目录]

  (前面假则奉行前面卡塔尔    !:逻辑否   #当钦定条件不成登时,重回结果为真

[ -e /etc/sysconfig/ ] && echo "yes"

  for  收件人  in 邮件地址列表 依照变量的不通值,重复实践少年老成组命令操作   ==》   do for 变量名  in 取值列表     发邮件  do        done 命令连串done

/etc/init.d/sshd restart

比方/boot分区的上空应用超过百分之九十,输出警示新闻。大家来写个剧本

function 函数名{

 

 

整数值相比较  格式:[ 整数1 操作符 整数2 ]

3) 字符串相比较

  [ 字符串1 != 字符串2 ]   

until语句依照规范施行重复操作,与while循环正巧相反

##read -p "input your name: " 

*)

     if条件语句   --单分支 当“条件塑造“时进行相应的操作     if  条件测量检验命令          

;;

 用项:测量试验表明式是还是不是营造,创立再次回到值为0,否重返值为其余值。

RATE=`df -hT | grep "/boot" | awk '{print $6}' | cut -d "%" -f1 `

用来跳出当前的循环体,奉行循环体后的语句。

echo "they are other words"

-L:测量试验是还是不是为标识链接文件【link】

上风姿浪漫篇作品首要讲的是shell中最功底的事物像history,文件/数字等测量检验,如何执行三个本子等,这一次珍视是介绍部分稍稍尖锐的内容。

  格式:[操作符   文件或目录]   千千万万的测量检验操作符

五.case多种分支语句

   if条件语句--双分支 当“条件创建”、“条件不制造”时进行不后生可畏的操作

 应用示范1:

[[email protected] /]# echo $?

二.if条件语句

for循环语句    

 -L:测量试验是不是为标记连接(Link卡塔 尔(英语:State of Qatar)文件

echo "it is shuzi"  ;; *)  echo "........."  ;;

 -x:测验当前客商是或不是可实践(Excute卡塔尔国该公文

awk的附加扩充

 -lt:小于(Lesser Than)

[[email protected] ~]#

do

break语句

adder 56 789

[[email protected] /]#

ValidUsers=`grep "/bin/bash" /etc/passwd | cut -d ":" -f 1`

[[email protected] ~]# ./c.sh 46 55

 -gt:大于(Greater Than)

#[ $name != "root"] && echo "name is erro"

done

-f:测量检验是或不是为文件【file】

例子2:

[[email protected] ~]# cat /etc/passwd | grep bash | awk -F: '{print ($1)}' root lenovo [[email protected] ~]# ^C

  1. 双分支

[[email protected] ~]# cat c.sh

 -f:测量检验是或不是为文件(File卡塔 尔(阿拉伯语:قطر‎

[[email protected] Packages]# echo $?

函数名() {

#vi a.sh #!/bin/bash #a.sh NUM=`df | awk 'NR==5{print int($5)}'` if [ $NUM -gt 80 ] then  echo "Warning,DISK is full!" if

 例如,若当前剧本程序拿到的地点变量如下:

[[email protected] /]# [ -r /etc/shadow ]

 则施行二遍shift命令后,各职位变量为:

echo "start...."   ;; stop)  echo "stop......"  ;;

Shell函数概述

字符串相比较  格式 [ 字符串1 = 字符串2 ]     

#!/bin/bash

#!/bin/bash for TM in a b c d e do echo $TM sleep 1 done ~                                                                               ~                                                                               ~          重复测验钦赐的条件,只要条件创建则频频实行相应的一声令下操作

 -ge:大于或等于(Greater or Equal卡塔尔

[[email protected] Packages]#

done

#操作符两侧起码贰个为真时,结果为真,不然结果为假   

[ -z 字符串]

[[email protected] ~]# cat a.sh #!/bin/bash

 -a或&&:逻辑与,“而且”的意思

函数的行使

  1. 多分支

#a.sh Result=0 while [ $# -gt 0 ]  do Result=`expr $Result $1`  shift  done  echo "The sum is: $Result"

 -eq:等于(Equal)

  -o或||:逻辑或,或然的情趣   

a) 格式:[ 表达式1 ] 操作符[ 表达式2 ] ...

[[email protected] /]# [ -d /var/spool/ ]

DIR="/opt"

逻辑测量检验   

 -d:测验是还是不是为目录(Directory卡塔尔国

假定/boot分区的空中应用超越百分之八十,输出报告急察方音讯  

echo "The $TM of the day."

[[email protected] ~]# ./a.sh start start....

done

esac

while [ $# -gt 0 ]

-r:测量检验当前的客户是或不是有读取的权力 【read】

p $1=file2、$2=file3、$3=file4

援引案例: 判定vsftp是还是不是在运维。若已运维则输出提醒消息,不然重新启航vsftp服务 #!/bin/bash service vsftp status &>/dev/null  if [ $? -eq 0 ] then  echo "vsftp service is running"  else   /etc/init.d/vsftp restart  fi

#!/bin/bash

[[email protected] ~]# ./c.sh 46 55

echo "123456" | passwd --stdin stu$i &> /dev/null

    [ -z 字符串 ]

2) 整数值比较

[[email protected] ~]# ./a.sh stop stop...... [[email protected] ~]#

#!/bin/bash

 

echo "$UserName have $Num files."

0

for TM in "Morning" "Noon" "Evening"

1

then

[[email protected] Packages]# [ -f /etc/passwd ]

Result=`expr $Result $1`

-d :测量检验是还是不是为目录【directory】

 在剧本中定义二个加法函数,用于计算2个整数的和

#内外多少个说明式都创造是全部测量检验结果才为真,不然为假    (前边真则实施前边卡塔尔  

四.while循环语句

[[email protected] /]# ll /etc/shadow ----------. 1 root root 1086 2月  26 22:38 /etc/shadow

 批量增加二十个系统客商帐号, 顾客名依次为“stu1”、“stu2”、……、“stu20”

[[email protected] /]# [ -x /etc/shadow ]

Result=0

 

方法一:

adder 12 34 adder 22 33

当“条件创设”、“条件不树立”时实践不风度翩翩操作

1、shell的口径测量试验 test命令 用场:测量试验表达式是不是创设,创造再次回到...

adder 12 34

#!/bin/bash #a.sh case $1 in start)  

done

0

 -w:测量试验当前客商是不是有权力写入(Write卡塔尔

#read -p "input your name: "  name root

i=`expr $i 1`

#!/bin/bash #c.sh adder(){ echo `expr $1 $2` }

if [ $RATE -gt 80 ]

if [$RATE -gt 80]   then   echo "warning,DISK is full!"

传闻变量的例外取值,分别施行分歧的一声令下操作

[[email protected] /]# ll /etc/shadow ----------. 1 root root 1086 2月  26 22:38 /etc/shadow

#!/bin/bash

#echo $name

fi

[[email protected] /]# [ -e /etc/passwd ]

case $AA in

常用的测验操作符  

shift

[[email protected] /]# echo $?

}

[[email protected] ~]# ./a.sh 10 20 The sum is: 30

  1. test命令

-x:测量试验当前的顾客是还是不是可举办和该文件【excute】

p $1=file1、$2=file2、$3=file3、$4=file4

 

 再度推行shift命令后,各岗位变量为:

 echo "it is english"  ;; [0-9])  

p $1=file3、$2=file4

#echo $name

六.until循环语句

[[email protected] 桌面]# who|wc -l 2

while [ $i -le 20 ]

if 条件测验命令   if 3306端口是或不是在监听状态  then 命令体系1  ==》      then mysqld 服务已运维  else 命令体系2                    else 运行mysqld服务 fi     fi

比如...

[《shell常用变量计算回想》QX56HEL6分分快三全天计划网站。 -e /media/cdrom ] && echo "YES"  前边的奉行对了才会推行前面包车型地铁

 -ne:不等于(Not Equal)

#[ $name != "root"] && echo "name is erro"

 -le:小于或等于(Lesser or Equal卡塔尔

[[email protected] ~]#

 应用示范2:删除刚创造的19个帐户

应用案例:  

若果/boot分区的空间应用超越五分四,输出报告急察方新闻

[ -e /media/cdrom/Server ]&& echo “YES”

do

-e:测测验目录或文件是还是不是存在【exist】

LMT=100

0

if [ $? -eq 0 ]

[[email protected] ~]# ./a.sh input:2 it is shuzi

 !=:字符串内容各异,! 号表示相反的意趣

[[email protected] /]# echo $?

据说变量的比不上取值,重复实施业作风姿洒脱组命令操作

0

read AA

 

 在编排Shell脚本程序时,将部分亟待重复使用的授命操作,定义为集体使用的语句块,就可以称为函数

   fi

 格式:test 条件表明式

另意气风发种测量试验

else

1、shell的标准化测量试验  test命令

[a-z]|[A-Z])

#!/bin/bash  RATE=df |awk'NR==4{print int($5)}'  

echo "The sum is : $Result"

[[email protected] /]# echo $?

#!/bin/bash

[[email protected] /]# echo $?

;;

0

《shell常用变量计算回想》QX56HEL6分分快三全天计划网站。九.Shell函数用到

while 命令或表达式  while 可用内部存款和储蓄器<100mb do   ==》do   命令列表  获取可用内存数 done    done

《shell常用变量计算回想》QX56HEL6分分快三全天计划网站。}

[[email protected] /]#

后生可畏.条件测量检验操作

常用的测量检验操作符    -a 或&&:逻辑与,“何况”的情致  

#!/bin/bash

 

三.for循环语句

echo "start....."  echo "stop......"  ;; esac

[ 字符串1 != 字符串2 ]

附近的测量试验项目: 测验文件状态 字符串比较 整数值相比较 逻辑测量试验

 =:字符串内容相通

  1. 定义新的函数,二种情势:

;;

then

比方test测验,if条件语句,for循环,while循环,case语句,自定义函数等,希望对大家有帮带,我们多提意见。。。。。

echo "Warning,DISK is full!"

do

echo -n "please inset some keys:"

#!/bin/bash

 -r:测量试验当前顾客是或不是有权力读取(Read卡塔尔

 常用的测量检验操作符

i=1

do

c.常用的测量检验操作符

 -e:测验目录或文件是或不是存在(Exist卡塔尔

service sshd status &> /dev/null

 合理施用Shell函数,能够使脚本内容愈来愈简明,巩固程序的易读性,升高奉行功用

指令类别

i=`expr $i 1`

1) 测验文件状态

#!/bin/bash

1. break语句:在for、while、until等循环语句中,用于跳出当前所在的循环体,试行循环体后的说话

echo `expr $1 $2`

用来迁移地方变量,将$1~$9 依次向左传递

 -z:字符串内容为空

 -o或||:逻辑或,“或者”的意思

2. continue:在for、while、until等循环语句中,用于跳过循环体内剩余的口舌,重新判定规范以便实践下叁遍巡回

while [ $i -le 20 ]

一声令下种类

七.shift迁移语句

if [ $Num -gt $LMT ] ; then

useradd stu$i

echo "they are number"

fi

方法二:

do

echo "mysqld service is running."

[ 条件表明式]

1.单分支:

 用项:测量试验特定的表明式是还是不是成立,当条件建立刻,命令试行后的再次回到值为0,不然为此外数值

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划