【2018.07.12學習筆記】【linux高級知識 20.5-20.9】

20.5 shell腳本中的邏輯判斷

shell腳本中常常會用到邏輯判斷:if語句判斷。shell

if邏輯判斷有三種格式:bash

一、if 條件; then 語句; fi

二、if 條件; then 語句; else 語句; fi

三、if 條件; then 語句; elif 條件; then 語句; else 語句; fi

if邏輯判斷舉例:code

a=5
if [ $a -gt 3 ]; then echo ok; fi  //[]裏面,每一個參數之間都須要空格間隔開

#!/bin/bash
a=1
if [ $a -gt 3 ]
then
   echo ok
else
   echo no ok
fi

#!/bin/bash
a=3
if [ $a -gt 4 ]
then
   echo ">4"
elif [ $a -gt 6 ]
then
   echo ">6"
else
   echo no ok
fi

邏輯判斷裏的比較符號:字符串

-gt 大於
-lt 小於
-ge 大於等於
-le 小於等於
-eq 等於
-ne 不等於

//另外中用法,用兩個小括號就能使用數學符號形式的表達
(($a>1))、(($a<1))、(($a==1))、(($a>=1))、(($a<=1))

if語句中的多條件:input

if [ $a -gt 5 ] && [ $a -lt 9 ];then....; fi
if [ $a -gt 5 ] || [ $a -lt 3 ];then....; fi

20.6 文件目錄屬性判斷

[ -f file ] //是否爲普通文件,且存在
[ -d file ] //是否爲目錄,且存在
[ -e file ] //是否存在文件或目錄
[ -r file ] //對執行shell腳本用戶而言,是否可讀
[ -w file ] //對執行shell腳本用戶而言,是否可寫
[ -x file ] //對執行shell腳本用戶而言,是否可執行
[ ! -f file ] //加!號取反、文件且不存在

示例:數學

#!/bin/bash
f="/tmp/lgs"
if [ -f $f ]
then
   echo $f exist
else
   touch $f
fi

#!/bin/bash   //經常使用簡化寫法
f="/tmp/lgs"
[ -f $f ] && rm -f $f

20.7 if特殊用法

if [ -z "$a" ] //變量a的值是否爲空
if [ -n "$a" ] //變量a的值是否不爲空  //a爲文件名能夠不用雙引號,判斷文件內容不爲空。
if grep -q '123' 1.txt;then...;fi //-q爲不顯示過濾行:若是1.txt中含有123字符串的行,則執行then語句
if [ ! -e file ];then....;fi //文件不存在,則執行then語句

20.8/20.9 case判斷

case語句在工做中用的比較少,但也有用處it

case 變量名 in   //匹配到case的變量等於某個值,執行下面的語句
   值1)
      語句
	;;
   值2)
      語句
	;;
   值*)    //*表明除以上值之外的值
      語句
	;;
   esac
   
case中的值,能夠用|號,便可以匹配多個值: 2|3|4) 語句;;

shell中與用戶交互輸入數值變量

read -p "please input a number: " n

exit 退出可返回值:file

exit 1  //退出執行腳本,返回值1

echo $? 返回的結果,就是exit返回的值。
相關文章
相關標籤/搜索