1. 程式人生 > >Linux shell指令碼——if運算例子

Linux shell指令碼——if運算例子

下面以具體例子來描述shell指令碼中if語句的使用

#!/bin/sh

#define a variable,定義一個變數,此處等號兩邊不能有空格
v="test shell commond"
#print the variable,且沒有連字元也是支援的
echo "變數 is: " $v

#判斷當前目錄下是否有此檔案

file="test.sh" #定義要查詢的檔案

#[ -f "somefile" ] :判斷是否是一個檔案

if [ -f "$file" ];then #此處需要注意的是,if後面要有空格,且[後面、]前面都要有空格,然後是分號,最後是then
   echo "001"
else
   echo "002"
fi

#根據設定的數字大小來進行判斷,然後輸出結果


num=8
echo "the number is: " $num
if [ $num -gt 10 ];then
   echo "the unmber is larger than 10"
elif [ $num -eq 10 ];then
   echo "the number is equal with 10"
else
   echo "the number is smaller than 10"

fi

以下為網路中牛人總結的內容,可供參考使用。

shell判斷檔案,目錄是否存在或者具有許可權

#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var /log/httpd/access.log"
#這裡的-x 引數判斷$myPath是否存在

並且是否具有可執行許可權
if [ ! -x "$myPath"]; then
mkdir "$myPath"
fi
#這裡的-d 引數判斷$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi
#這裡的-f引數判斷$myFile是否存在
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi
#其他引數還有-n,-n是判斷一個變數是否是否有值
if [ ! -n "$myVar" ]; then
echo "$myVar is empty"
exit 0
fi
#兩個變數判斷是否相等

if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi

========================================
shell 判斷語句

流程控制 "if" 表示式 如果條件為真則執行then後面的部分:

if ....; then
....
elif ....; then
....
else
....
fi

大多數情況下,可以使用測試命令來對條件進行測試。比如可以比較字串判斷檔案是否存在是否可讀等等…   

通常用" [ ] "來表示條件測試。注意這裡的空格很重要。要確保方括號的空格。
[ -f "somefile" ] :判斷是否是一個檔案
[ -x "/bin/ls" ] :判斷/bin/ls是否存在並有可執行許可權
[ -n "$var" ] :判斷$var變數是否有值
[ "$a" = "$b" ] :判斷$a和$b是否相等         

-r file     使用者可讀為真
-w file     使用者可寫為真
-x file     使用者可執行為真
-f file     檔案為正規檔案為真
-d file     檔案為目錄為真
-c file     檔案為字元特殊檔案為真
-b file     檔案為塊特殊檔案為真
-s file     檔案大小非0時為真
-t file     當檔案描述符(預設為1)指定的裝置為終端時為真

######################################################### 含條件選擇的shell指令碼
    對於不含變數的任務簡單shell指令碼一般能勝任。但在執行一些決策任務時,就需要包含if/then的條件判斷了。shell指令碼程式設計支援此類運算,包 括比較運算、判斷檔案是否存在等。基本的if條件命令選項有:
-eq —比較兩個引數是否相等(例如,if [ 2 –eq 5 ])
-ne —比較兩個引數是否不相等
-lt —引數1是否小於引數2
-le —引數1是否小於等於引數2
-gt —引數1是否大於引數2
-ge —引數1是否大於等於引數2
-f — 檢查某檔案是否存在(例如,if [ -f "filename" ])
-d — 檢查目錄是否存在
幾 乎所有的判斷都可以用這些比較運算子實現。指令碼中常用-f命令選項在執行某一檔案之前檢查它是否存在。
################################################################## 判斷檔案是否存在 #!/bin/sh
today=`date -d yesterday +%y%m%d`
file="apache_$today.tar.gz"
cd /home/chenshuo/shell
if [ -f "$file" ];then
echo "OK"
else
echo "error $file" >error.log
mail -s "fail backup from test" [email protected] <error.log
fi


相關推薦

Linux shell指令碼——if運算例子

下面以具體例子來描述shell指令碼中if語句的使用 #!/bin/sh #define a variable,定義一個變數,此處等號兩邊不能有空格 v="test shell commond" #print the variable,且沒有連字元也是支援的 echo "變

linux shell 指令碼【2】 ---- 數學運算

在Bash shell環境中,可以利用 let、 (()) 、 [ ]、 expr 、  bc 進行數學運算 用法直接上程式碼,如下: #! /bin/bash echo "數學運算篇 START" #基本運算----let a=5; b=4; echo "a = $a

結合linux 環境變數的理解shell指令碼 if.......then語句及test命令

"uenvboot=" \ "if run sd_uEnvtxt_existence_test; then " \ "run loadbootenv; " \ "echo Loaded environment from ${bootenv}; " \

Linux Shell指令碼編寫規範、例子

一、規範 Linux的Shell種類眾多,常見的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、She

linux shell指令碼對未定義變數的判斷以及if的用法

環境 作業系統:win10 虛擬機器:centos7 需求 因為公司有個指令碼,是用於啟動程式的,但是每次啟動都要手動做如下兩個操作: ①先查詢之前的程序ID ②殺死之前的,在啟動新了 時間長了弄得我很煩躁,所以就琢磨下,把上面的的操作一起整合

linux shellif-------用if做判斷

exist word then ucc reserve 服務器 單機 mon true 一 簡介 1 字符串判斷 str1 = str2      當兩個串有相同內容、長度時為真 str1 != str2      當串str1和str2不等時為真 -n s

Linux-Shell指令碼程式設計基礎(1)

1. 我們一般在使用Linux系統的時候,都活接觸到shell指令碼的使用,例如我們經常在linux系統中使用的ls命令、cd命令等,都是衣蛾簡單而又基本的shell命令,在 linux系統中我們一般的使用如下的格式來進行shell指令碼的編寫: (1)格式 #!bin/bash e

學習Linux shell指令碼中連線字串的方法

這篇文章主要介紹了Linux shell指令碼中連線字串的方法,如果想要在變數後面新增一個字元,可以用一下方法: 程式碼如下: $value1=home $value2=${value1}"=" echo $value2 把要新增的字串變數新增{},並且需要把$放到外面。 這樣輸出的結果

Linux Shell指令碼獲取當前路徑

shell指令碼獲取當前路徑 #方法一 #!/usr/bin/env bash Cur_Dir=$(pwd) echo $Cur_Dir #方法二 #!/usr/bin/env bash basedir=cd $(dirname $0); pwd

linux shell 指令碼【1】 ---- echo 與 printf 用法

終端列印的常用命令有 echo 和 printf 兩種。 先說基本用法: echo: 1. echo Hello Word ! 命令列輸出:Hello Word ! 2. echo 'Hello Word !' 命令列輸出:Hello Word ! 3. echo

linux shell 指令碼【3】 ---- 重定向 與 tee 命令

1.重定向: echo "ABCD"  > temp.txt 將ABCD寫入到temp.txt中 echo "ABCD" >> temp.txt 講ABCD追加到temp.txt中 其中  > 相當於 1>

Linux Shell指令碼程式設計 --awk命令詳解

簡單使用: awk :對於檔案中一行行的獨處來執行操作 。 awk -F :'{print $1,$4}'   :使用‘:’來分割這一行,把這一行的第一第四個域打印出來 。    

shell指令碼--if判斷(數字條件 字串條件)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linux Shell 指令碼讀取配置檔案

一、應用場景 為了靈活應用shell指令碼,適當的加入配置檔案,對於後期的維護和優化會有很大幫助。例如指令碼中使用的檔案/檔案路徑,都可以通過讀取配置檔案完成。 配置檔案 filename=boomlee 指令碼檔案 #!/bin/bash workdir=$(cd $(di

Linux shell指令碼 自動輸入提示資訊或回車進行下一步操作

1.應用場景 有的時候執行安裝或操作第三方軟體時,需要輸入Yes 或者回車 才能進行下一步 例如操作sqlite [[email protected] sh]# sqlite3 anhui.db SQLite version 3.6.20 Enter ".help" fo

Linux --- Shellif判斷條件問題 (-lt和>的使用情況)

Shell的判斷條件有兩種寫法:1.-lt(小於),-gt(大於),-le(小於等於),-ge(大於等於),-eq(等於),-ne(不等於) l--less g--great t--than e--equal n--not if [ $s -lt 0 ] || [ $s -g

Linux shell指令碼按住任意鍵繼續操作

                         Linux shell指令碼按住任意鍵繼續操作   #!/bin/bash echo " 開始執行操

Learning Linux Shell Scripting 學習Linux Shell指令碼 Lynda課程中文字幕

Learning Linux Shell Scripting 中文字幕 學習Linux Shell指令碼 中文字幕Learning Linux Shell Scripting Linux shell指令碼是消除重複,枯燥任務的有用工具 指令碼使得從程式設計到系統管理的許多工作更容易

linux shell指令碼監控程序是否存在

用shell指令碼監控程序是否存在 不存在則啟動的例項,先上程式碼乾貨:    #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]thenecho "start process....."elseecho

Linux shell指令碼啟動 停止 重啟jar包

  最近做的微服務jar包想弄在持續整合中自動化部署,所以首先得有一個操作jar包的指令碼 只需將jar檔案的路徑替換到APP_NAME的值就可以了,其他不用改 注意:window編輯的shell檔案,通過WinSCP上傳的Linux伺服器,需要改變檔案的格式(檢視檔案格式,vim編