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.www58058.com/36346

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

相關推薦

  • Linux磁盤、文件系統管理

    對Linux而言,其哲學思想之一就是一切皆文件,因此Linux之上所有設備的操作都是通過文件接口來實現的,也就是說在訪問設備的時候就如同訪問一個文件一樣,因為他們使用的都是文件系統接口。  設備也分種類,如:     1、塊設備:block 其存取單位是“塊”,如硬盤    &n…

    Linux干貨 2016-08-29
  • 運維架構之httpd

    Web Service 傳輸層:提供進程地址 Port number tcp:傳輸控制協議,面向連接,通信前需建立虛擬鏈路,結束后拆除;0-65535 udp:用戶數據報協議,無連接;0-65535 IANA 0-1023:眾所周知,永久分配給固定應用使用;22/tcp(ssh)、80/tcp(http)、443/tcp(https) 1024-41951:…

    系統運維 2018-06-04
  • N26 第七周作業

    1、創建一個10G分區,并格式為ext4文件系統;(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@localhost ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in mem…

    Linux干貨 2017-02-07
  • 軟件包管理詳解

      軟件包管理器 1、功能: (1)將軟件包打包成一個文件,其中包括: ①二進制程序 ②庫文件 ③配置文件 ④幫助文件 (2)生成數據庫,追中所安裝的每一個文件。 2、軟件包管理器的核心功能: (1)制作軟件包 (2)安裝、卸載、升級、查詢、校驗 3、不同發行版的不同的…

    2017-08-11
  • 夢想走向現實的地方

    曾經羨慕打字快的同學指尖能在鍵盤上優雅地跳舞,于是我有努力練習打字。 曾經羨慕同事能很神奇地把一個交換機的端口關閉,讓那端口下面的人都不能上網,于是我努力學習交換機、路由。 現在我羨慕一個人能管很多服務器的人,于是我開始學習linux了。 努力成為一個也能管很多服務器的人,因為我也想別人叫我運維工程師

    Linux干貨 2016-10-25
  • 第四周博客作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 2、編輯/etc/group文件,添加組hadoop。 3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。 4、復制/etc/sk…

    Linux干貨 2017-02-07
欧美性久久久久