Shell指令碼中判斷變數為數字的3種方法

2021-10-10 12:54:35 字數 828 閱讀 1391

這篇文章主要介紹了shell指令碼中判斷變數為數字的3種方法,本文分別介紹了expr、sed兩種方法,並給出了乙個判斷指令碼,需要的朋友可以參考下

方法1:通過expr 計算變數與乙個整數值相加,如果能正常執行則為整數,否則執行出錯,$?將是非0的值

**如下:

expr $args + 0 &>/dev/null
方法2:列印變數通過sed替換的方式,將變數中的數字替換為空,如果執行替換後變數為空,則為整數

**如下:

echo $args | sed 's/[0-9]//g'
如果判斷負數則再用sed過濾負號

**如下:

echo $args | sed 's/[0-9]//g' | sed 's/-//g'
下面的指令碼通過兩個函式來實現數值判斷。**很簡單,就不加注釋了。

**如下:

#!/bin/bash

usage()

}checkint1()"]&&

}[ $# -ne 2]&&usage

args1=$1

args2=$2

checkint $args1

checkint1 $args2

if[ $args1 -gt $args2 ];then

echo "yes,$args1 greate than $args2"

else

echo "no,$args1 less than $args2"

fi

shell中if判斷乙個變數為空

1.最直接簡單的判斷 a echo a is null 不用那些if語句了,直接縮短 量。2.變數通過 引號引起來 如下所示 可以得到結果為 is null.bin sh a if n a then echo is null else echo not null fi3.直接通過變數判斷 如下所示 ...

shell指令碼中的變數

1 在命令列中和指令碼中,變數定義得格式 name value 左右兩邊不能有空格,否則會當做命令來對待,輸出乙個command not found echo name echo 列印出變數,引用變數使用 name.2 單引號和雙引號 語法 和php中相同 雙引號仍然可以保有變數的內容,但單引號內僅...

Shell 指令碼中特殊變數

在shell 指令碼中一些變數會根據環境設定中的值進行初始化,這些變數通常用大寫字母命令 環境變數 說明 home 當前使用者的家目錄 path 環境變數 path ps1 命令提示符,通常是 字元 ps2 二級提示符,通常是 字元 ifs 輸入域分隔符,用來分割單詞的一組字串,他們通常是空格 製表...