shell 指令碼中中 f e eq等等的意義

2021-08-09 13:49:42 字數 1506 閱讀 2513

檔案比較運算子

-e filename 如果 filename存在,則為真 [ -e /var/log/syslog ]

-d filename 如果 filename為目錄,則為真 [ -d /tmp/mydir ]

-f filename 如果 filename為常規檔案,則為真 [ -f /usr/bin/grep ]

-l filename 如果 filename為符號鏈結,則為真 [ -l /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 「my

var」

]−ns

trin

g如果s

trin

g長度非

零,則為

真[−n

「 myvar」 ]

string1= string2 如果 string1與 string2相同,則為真 [ 「my

var」

=「on

etwo

thre

e」]s

trin

g1!=

stri

ng2如

果str

ing1

與str

ing2

不同,則

為真[「

myvar」 != 「one two three」 ]

算術比較運算子

num1-eq num2 等於 [ 3 -eq my

num]

num1

−nen

um2不

等於[3

−ne mynum ]

num1-lt num2 小於 [ 3 -lt my

num]

num1

−len

um2小

於或等於

[3−l

e mynum ]

num1-gt num2 大於 [ 3 -gt my

num]

num1

−gen

um2大

於或等於

[3−g

e mynum ]

shell中基礎指令碼

shell 指令碼 shell script 是一種為 shell 編寫的指令碼程式。業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。由於習慣的原因,簡潔起見,本文出現的 shell程式設計 都是指 shell 指...

shell指令碼中 2 1

在指令碼開發中經常能看到 2 1 比如 2 root cd x php index.php task testone dev null 2 1對於 1 更準確的說應該是檔案描述符 1,而1標識標準輸出,stdout。對於2 表示標準錯誤,stderr。2 1 的意思就是將標準錯誤重定向到標準輸出。這...

shell指令碼中 set ex

剛剛學會了乙個很實用的shell命令set ex,在這裡分享一下。set e 先說說set e,這個引數的含義是,當命令發生錯誤的時候,停止指令碼的執行。通常來說,我們會習慣於使用 來實現這樣的功能,比如 echo 1 rm non existent file echo 2但是,寫成一行呢,可讀性有...