iT邦幫忙

DAY 18
4

我與BASH shell scripting的每一天系列 第 18

我與BASH的每一天 - [18] if 條件判斷的正規化用法

之前提到了很多正規化表示法以及他在awksed上的用途,昨天有談到case也能運用同樣的技巧,其實if條件判斷也可以。

要在if中採用正規化表示法,就必須使用兩層的方括號**[[ ... ]],以及=~**運算符號。下面這段程式可以用來判斷檔案的附檔名是否為rpm:

for packages in /tmp/*
do
if [[ $packages =~ .*\.rpm ]]; then
echo “$packages is a RPM package”
else
echo “File $packages is not a RPM package.”
fi
done

第3行的**\.rpm中的反斜線\是溢出字元,用意是將句點.**當成要比對的字串,而非特殊符號。

[本系列文章]

我與BASH的每一天 - [1]利用bc命令來取得數字字串中的特定欄位值
我與BASH的每一天 - [2]直取字串變數中的特定欄位值
我與BASH的每一天 - [3] 利用awk來擷取特定欄位
我與BASH的每一天 - [4] 利用awk來擷取特定欄位-2
我與BASH的每一天 - [5] 利用awk來擷取特定欄位-3
我與BASH的每一天 - [6] 利用cut來擷取特定欄位
我與BASH的每一天 - [7] grep指令的妙用 - 1
我與BASH的每一天 - [8] grep指令的妙用 - 2
我與BASH的每一天 - [9] 正規化表示法 - 1
我與BASH的每一天 - [10] 正規化表示法 - 2
我與BASH的每一天 - [11] 正規化表示法 - 3
我與BASH的每一天 - [12] 正規化表示法 - 4
我與BASH的每一天 - [13] sed - 1
我與BASH的每一天 - [14] sed - 2
我與BASH的每一天 - [15] sed - 3
我與BASH的每一天 - [16] 多條件選擇 - case
我與BASH的每一天 - [17] 建立自動化的暫存檔 - mktemp


上一篇
我與BASH的每一天 - [17] 建立自動化的暫存檔 - mktemp
下一篇
我與BASH的每一天 - [19] 複合式的條件判斷
系列文
我與BASH shell scripting的每一天31

尚未有邦友留言

立即登入留言