if、case 语法

1. 条件选择 if 语句

        选择执行:

             单分支

                if 判断条件: then

                  条件为真的分支代码

                fi

                   

             双分支

                if 判断条件; then

                   条件为真的分支代码

                else

                   条件为假的分支代码

                fi

                   

             多分支

                if CONDITION1; then

                    if-true

                elif CONDITION2; then

                    if-ture

                elif CONDITION3; then

                    if-ture

                    …

                else

                    all-false

                fi

   

          逐条件进行判断,第一次遇为“真”条件时,执行其分支,而后结束整个if语句

        if实例

             根据命令的退出状态来执行命令

            if ping -c1 -W2 station1 &> /dev/null; then

                echo 'Station1 is UP'

            elif grep "station1" ~/maintenance.txt &> /dev/null

            then

                echo 'Station1 is undergoing maintenance‘

            else

                echo 'Station1 is unexpectedly DOWN!'

                exit 1

2.条件判断: case 语句

            case 变量引用 in

                PAT1)

                        分支1

                        ;;

                PAT2)

                        分支2

                        ;;

                        …

                 *)

                        默认分支

                        ;;

            esac

3.练习:

 

1、写一个脚本/root/bin/createuser.sh,实现如下功能:

使用一个用户名做为参数,如果指定参数的用户存在,就显

示其存在,否则添加之;显示添加的用户的id号等信息

read "input your username :" input_user

id $input_user

if [ $? -eq 0 ] ;then

echo" user exist"

else

useradd $input_user

chk_id=`getent passwd $input_user | cut -d: -f 3 `

echo $chk_id

fi

 

? 2、写一个脚本/root/bin/yesorno.sh,提示用户输入yes或

no,并判断用户输入的是yes还是no,或是其它信息

#!/bin/bash

#

read -p "please input yes or no:" input_info

[ -z "$input_info" ] && (echo "error";exit) || uperr_input_info=`echo "$input_info" | tr [a-z] [A-Z]`

case $uperr_input_info in 

Y|YES|NO|N)

echo "right"

;;

*)

echo "other info "

;;

esac

3、写一个脚本/root/bin/filetype.sh,判断用户输入文件路

径,显示其文件类型(普通,目录,链接,其它文件类型)

#!/bin/bash

#

read -p "please input the path :" path_file

if [ -z "$path_file" ];then

echo "you need to input info";exit

else

type_file=`ls -ld $path_file | cut -c1`

echo "the type of the file is : $type_file"

fi

4、写一个脚本/root/bin/checkint.sh,判断用户输入的参数

是否为正整数

#!/bin/bash

#

read "please input int:" int_put

if [[ "$int_put" =~ '^[1-9]+$' ]] ;then

echo "it is a int"

elif [ "$int_put" -le 0 ] ;then

ehco "it is fu int or zero"

elif [ "$int_put" -eq 0 ];then 

echo "it is zero"

else

echo "it is not a int"

fi

#也可以使用 expr a + 0 ,即可判断a的类型

       

原创文章,作者:ldt195175108,如若转载,请注明出处:http://www.178linux.com/36346

(0)
ldt195175108ldt195175108
上一篇 2016-08-22 09:29
下一篇 2016-08-22 09:29

相关推荐

  • 第六周作业-练习题sed,crontab,bash

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;    方法一用sed:          方法二用vim       &…

    Linux干货 2017-01-16
  • 学习宣言

    世界上只有一种失败,就是半途而废!

    Linux干货 2016-12-29
  • iptables——linux下的防火墙

    iptables Firewall:隔离工具 Packets Filter Firewall;工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件          硬件防火墙:在硬件级别实现部分功…

    Linux干货 2016-10-22
  • N26 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@localhost ~]# cat /boot/grub/grub.conf | grep "^[[:space:]]" 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后…

    Linux干货 2017-01-26
  • Linux磁盘和文件系统管理

      Linux磁盘和文件系统管理.pdf Part.I 磁盘管理 1.cfdisk   #图形化的很简单. 不知道你们用什么 反正我喜欢这个 ^_^ cfdisk – display or manipulate disk partition table 必要参数的具体说明如下: -a用箭头表示选取,而不是以反白表示 …

    Linux干货 2016-04-05
  • ​学会用各种姿势备份MySQL数据库

                学会用各种姿势备份MySQL数据库 前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY …

    Linux干货 2016-04-27