一、檔案比較運算子
e filename 如果 filename存在,則為真 如: [ -e /var/log/syslog ]
-d filename 如果 filename為目錄,則為真 如: [ -d /tmp/mydir ]
-f filename 如果 filename為常規檔案,則為真 如: [ -f /usr/bin/grep ]
-r filename 如果 filename可讀,則為真 如: [ -r /var/log/syslog ]
-w filename 如果 filename可寫,則為真 如: [ -w /var/mytmp.txt ]
-x filename 如果 filename可執行,則為真 如: [ -l /usr/bin/grep ]
filename1-nt filename2 如果 filename1比 filename2新,則為真 如: [
/tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2 如果 filename1比 filename2舊,則為真 如: [
/boot/bzimage -ot arch/i386/boot/bzimage ]
二、字串比較運算子(請注意引號的使用,這是防止空格擾亂**的好方法)
-z string 如果 string長度為零,則為真 如: [ -z 「$myvar」 ]
-n string 如果 string長度非零,則為真 如: [ -n 「$myvar」 ]
string1= string2 如果 string1與 string2相同,則為真 如: ["$myvar" = 「one two three」]
string1!= string2 如果 string1與 string2不同,則為真 如: ["$myvar" != 「one two three」]
三、算術比較運算子
num1-eq num2 等於 如: [ 3 -eq $mynum ]
num1-ne num2 不等於 如: [ 3 -ne $mynum ]
num1-lt num2 小於 如: [ 3 -lt $mynum ]
num1-le num2 小於或等於 如:[ 3 -le $mynum ]
num1-gt num2 大於 如:[ 3 -gt $mynum ]
num1-ge num2 大於或等於 如: [ 3 -ge $mynum ]
四 shell中if做比較
shell判斷陣列中是否包含某個元素:
ary=(1 2 3)
a=2if [[ 「ary
[@]"
="
" =~ "
ary[@]
"="a」 ]] ; then
echo 「a in ary」
else
echo 「a not in ary」
fi五指令碼讀取使用者輸入的引數
$# 是傳給指令碼的引數個數
$0 是指令碼本身的名字
$1是傳遞給該shell指令碼的第乙個引數
$2是傳遞給該shell指令碼的第二個引數
$@ 是傳給指令碼的所有引數的列表
linux shell 指令總結
一 shell 基本指令 1.普通使用者 超級使用者 xx help 檢視xx 指令幫助 man 檢視xx指令用法 2.pwd 當前目錄 cd 回到根目錄 cd 頂端根目錄 cd 個人主目錄 3.file 讀取檔案中文字屬性 4.linux的目錄結構 boot 存放linux 核心 和啟動載入項 b...
linux shell 指令學習小結(一)
有必要總結一發shell指令了。不過我覺得網上的詳細教程還比較多,先知道每個指令幹啥,具體很詳細的引數可以在用的時候去查,用多了就熟了 覺得還不錯的教程傳送門 每天乙個linux命令目錄 裡面每個指令介紹的還算詳細,有什麼忘記的其實可以查這個 ps 分為三篇文章更 一 1.ls 命令 2.cd 命令...
Linux shell指令執行的原理
shell是一種命令列直譯器 對於一般使用者,我們不能直接使用作業系統 kernel 而是通過 kernel的 外殼 程式,也就是所謂的shell,來與kernel溝通。為什麼不能直接使用kernel?從技術角度 shell的最簡單定義 命 令 行 解 釋 器 command interpreter...