1. 程式人生 > >Shell中的if和case判斷語句

Shell中的if和case判斷語句

在程式的執行過程中,總會遇到各種各樣的情況。而作為一個功能相對完善的程式來講,應該可以根據不同的情況來選擇執行不同的程式碼。此時,我們需要用到條件判斷語句。條件判斷語句是一種最簡單的控制語句,該語句是的程式根據不同的條件來執行不同的程式分支。

使用if語句進行條件判斷

條件判斷語句可以使用if語句來實現,最簡單的if語句的語法如下:

if expression
then 
   statement1
   statement2
   ..........
fi

或者是下面的形式

if expression ; then 
   statement1
   statement2
   ...
....... fi

在Shell程式中,如果想要將多個命令放在同一行裡面,則需要使用分號將其隔開。

通過條件測試判斷檔案型別

#!/bin/sh 
if [ -f /bin/bash  ] ; then
   echo " /bin/bash is a file "
fi

指令碼的執行結果

[root@VM_156_149_centos shell]# sh 9.sh 
 /bin/bash is a file 

通過條件測試判斷檔案是否建立成功

#!/bin/sh 
echo "hello world!" > ./msg.log
if [ -f ./msg.log  ] ; then
echo " file has been created ... " fi

指令碼的執行結果,

[[email protected]_156_149_centos shell]# sh 10.sh
 file has been created ... 

使用if else 語句進行條件判斷

if else 語句的基本語法

if expression ; then 
   statement1
   statement2
   .....
else 
   statement3
   statement4
   .....
fi
  • if else 使用的例子
#! /bin/bash

#輸出提示資訊
echo "Please enter a number:"

#從鍵盤讀取使用者輸入的資料
read num

#如果使用者資料的資料大於10
if [ "$num" -gt 10 ] ; then
   #輸出大於10的提示資訊
   echo "The number is greater than 10";
else
   #輸出小於等於10的提示資訊
   echo "The number is equal to or less than 10"
fi
  • 程式的執行結果
[r[email protected]_156_149_centos shell]# sh 11.sh 
Please enter a number:
7
The number is equal to or less than 10
[[email protected]_156_149_centos shell]# sh 11.sh 
Please enter a number:
11
The number is greater than 10

使用case語句進行條件判斷

case語句的基本語法如下,

case variable in 
   value1)
    statement1
    statement2
    .....
    statementn ;;  #;;相當於break
   value2)
        statement1
        statement2
        .....
        statementn ;;  #;;相當於break
   .....
   *)
        statement1
        statement2
        .....
        statementn ;;  #;;相當於break
esac

利用case處理使用者輸入

#! /bin/bash
#輸出提示資訊
echo "Hit a Key ,then hit return ."

#讀取使用者按下的鍵的資訊
read keypress

#case語句開始
case "$keypress" in
  #小寫字母
  [[:lower:]])
     echo "Lowercase letter " ;; #這裡的;;不能忘記
  #大寫字母
  [[:upper:]])
     echo "Uppercase Letter " ;; #這裡的;;不能忘記
  #單個數字
  [0-9])
     echo "Digit " ;;
  #其他字元
  *)
     echo "Other Letter " ;; #這裡的;;不能忘記
esac
  • 程式的執行結果
[root@VM_156_149_centos shell]# sh case.sh 
Hit a Key ,then hit return .
1
Digit 
[root@VM_156_149_centos shell]# sh case.sh 
Hit a Key ,then hit return .
e
Lowercase letter 
[root@VM_156_149_centos shell]# sh case.sh 
Hit a Key ,then hit return .
E
Uppercase Letter 
[root@VM_156_149_centos shell]# sh case.sh 
Hit a Key ,then hit return .

Other Letter 

相關推薦

Shellifcase判斷語句

在程式的執行過程中,總會遇到各種各樣的情況。而作為一個功能相對完善的程式來講,應該可以根據不同的情況來選擇執行不同的程式碼。此時,我們需要用到條件判斷語句。條件判斷語句是一種最簡單的控制語句,該語

續寫vim,shell腳本基礎編輯,read命令,ifcase判斷語句,文件查找方式,壓縮與解壓,

退出 hist match 時間戳 語法錯誤 margin 基本概念 相同 reg 一、 Vim續寫 ?1、命令擴展模式的位置定界 ??起始位置 cmd 終止位置???Cmd:????y復制????d刪除????Gu變大寫????gu變小寫??例如:0y$命令意味著:

shell if else 用法詳解

基本語法 shell的if語法和C語言等高階語言非常相似,唯一需要注意的地方就是shell的if語句對空格方面的要求比較嚴格(其實shell對所有語法的空格使用都比較嚴格),如果在需要空格的地方沒有打上空格,都會報錯。如if [ $1x == "ip"x ];then ec

shellif判斷語句

file true pan rep then 好的 test 遇到 col if 條件測試類型: 文件測試, 數字測試, 字符串測試 if 語句結構: if ... ; then ....; fi if ... ; then ... ; else ... ; fi

Shellif條件語句的知識實踐

linux 運維 shell腳本本文主要講解if條件語句在shell的使用場景和示例基本大綱: 1.if條件語句的語法 2.if條件語句多種條件表達式語法 3.單分支if條件語句實踐 4.if條件語句的深入實踐及場景使用一:if條件語句的語法1)單分支結構第一種語法:if

MySQLifcase語句使用總結

Mysql的if既可以作為表示式用,也可在儲存過程中作為流程控制語句使用,如下是做為表示式使用: IF表示式 程式碼如下: IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <>

[shell]shellif語句的使用

don 條件 如何 ood 字符串 pre 評分 string 另一個 轉自:http://lovelace.blog.51cto.com/1028430/1211353 bash中如何實現條件判斷?條件測試類型: 整數測試 字符測試 文件測試 一、條

Shell腳本之for、while循環語句case分支語句

for語句 while語句 case語句 shell 楊書凡 shell作為一種腳本編程語言,同樣包含循環、分支等其他程序控制結構,從而輕松完成更加復雜、強大的功能使用for循環語句 在工作中,經常遇到某項任務需要多次執行,而每次執行僅僅是處理對象不一樣,其他命令都相同。使用

shellif語句的使用

轉載:https://blog.csdn.net/sunny05296/article/details/65987237 Linux shell if 語法 基本語法: if [ command ]; then 符合該條件執行的語句 fi 2、擴充套件語法: if [ c

linux shell if 條件判斷 -a 到 -z 的意思

[ -a FILE ] 如果 FILE 存在則為真。 [ -b FILE ] 如果 FILE 存在且是一個塊特殊檔案則為真。 [ -c FILE ] 如果 FILE 存在且是一個字特殊檔案則為真。 [ -d FILE ] 如果 FILE 存在且是一個目錄則為真。 [ -e FILE ] 如果 FIL

關於verilogifcase語句不完整產生鎖存器的問題

一、是什麼        鎖存器是一種在非同步時序電路系統中,對輸入訊號電平敏感的單元,用來儲存資訊。一個鎖存器可以儲存1bit的資訊,通常,鎖存器會多個一起出現,如4位鎖存器,8位鎖存器。         鎖存器在資料未鎖存時,輸出端的訊號隨輸入訊號變化,就像訊號通

oracle if case語句的使用

oracle if語句和case語句的使用例子 --------------------if---------------------------- set serveroutput on  declare    v_n1 number(2):=-9; begin   i

兩個數判斷大小(不能用 if, switch, ?, 其他判斷語句

求最值,考慮數學關係 程式碼如下( C ): #include <stdio.h> #include <math.h> #define MAX(a,b)

hiveifcoalesce 去除null值,case when

ref http://blog.csdn.net/mtj66/article/details/52629876 ###################################### if usage select * from (select *,if (b.nam

shellif條件字串、數字比對,[[ ]][ ]區別

轉載地址:http://71241.blog.51cto.com/61241/1341137 學習shell的時候總是被shell裡的條件判斷方式搞得頭疼,經常不知道改 用[],[[]],(())還是test,let,今天重點說說它們的區別的使用時應該注意的地方.

MySQLifcase用法

Mysql中的if既可以作為表示式使用,也可以在儲存過程中作為流程控制語句使用。 IF表示式 IF(expr1,expr2,expr3) 如果expr1是TRUE(expr1 <> 0 and expr1 <> NULL),則

shellif語句的格式以及使用

比較兩個字串是否相等的辦法是:     if [ "$test"x = "test"x ]; then     這裡的關鍵有幾點:     1 使用單個等號     2 注意到等號兩邊各有一個空格:這是unix shell的要求     3 注意到"$test"x最後的x,這是特意安排的,因為當$test為

shellif判斷資料夾或檔案是否存在!

if比較的字元用法: 1 2 3 4 5 6 7 8 9 10 11 12 13 -e 判斷物件是否存在 -d 判斷物件是否存在,並且為目錄

shell編程學習筆記(八):Shellif判斷的使用

空格 score 相等 span shell編程 str2 != color font 一、if的語法: 1、單分支語句結構 if [ 條件表達式 ]; then 指令 fi 2、雙分支語句結構 if [ 條件表達式 ]; then

shell exec source 命令解析

mage 開始 概念 繼續 uil target 緩沖區 mman bash內部命令 文章大部分來源於:http://www.cnblogs.com/zhaoyl/archive/2012/07/07/2580749.html 作為筆記留存博客備忘。 exec和source