刘勇虎的官方网站
网站内容包含大前端、服务器开发、Python开发、iOS开发、Android开发、网站维护等技术文章。专注于分享技术经验,职业心得体会,IT优秀文章与教程创作。
Stay hungry,Stay foolish,Stay young
文件比较运算符用于检查文件的状态,如是否存在、是否为目录、是否可读等。
-e filename
:如果 filename
存在,则为真。
[ -e /var/log/syslog ] && echo "File exists"
-d filename
:如果 filename
为目录,则为真。
[ -d /tmp/mydir ] && echo "Directory exists"
-f filename
:如果 filename
为常规文件,则为真。
[ -f /usr/bin/grep ] && echo "Regular file"
-L filename
:如果 filename
为符号链接,则为真。
[ -L /usr/bin/grep ] && echo "Symbolic link"
-r filename
:如果 filename
可读,则为真。
[ -r /var/log/syslog ] && echo "File is readable"
-w filename
:如果 filename
可写,则为真。
[ -w /var/mytmp.txt ] && echo "File is writable"
-x filename
:如果 filename
可执行,则为真。
[ -x /usr/bin/grep ] && echo "File is executable"
filename1 -nt filename2
:如果 filename1
比 filename2
新,则为真。
[ /tmp/install/etc/services -nt /etc/services ] && echo "First file is newer"
filename1 -ot filename2
:如果 filename1
比 filename2
旧,则为真。
[ /boot/bzImage -ot arch/i386/boot/bzImage ] && echo "First file is older"
字符串比较运算符用于检查字符串的长度和内容。
-z string
:如果 string
长度为零,则为真。
[ -z "$myvar" ] && echo "String is empty"
-n string
:如果 string
长度非零,则为真。
[ -n "$myvar" ] && echo "String is not empty"
string1 = string2
:如果 string1
与 string2
相同,则为真。
[ "$myvar" = "one two three" ] && echo "Strings are equal"
string1 != string2
:如果 string1
与 string2
不同,则为真。
[ "$myvar" != "one two three" ] && echo "Strings are not equal"
算术比较运算符用于比较数字值。
num1 -eq num2
:等于。
[ 3 -eq $mynum ] && echo "Numbers are equal"
num1 -ne num2
:不等于。
[ 3 -ne $mynum ] && echo "Numbers are not equal"
num1 -lt num2
:小于。
[ 3 -lt $mynum ] && echo "First number is less than second"
num1 -le num2
:小于或等于。
[ 3 -le $mynum ] && echo "First number is less than or equal to second"
num1 -gt num2
:大于。
[ 3 -gt $mynum ] && echo "First number is greater than second"
num1 -ge num2
:大于或等于。
[ 3 -ge $mynum ] && echo "First number is greater than or equal to second"
可以使用逻辑运算符 &&
和 ||
来组合多个条件。
&&
:逻辑与,所有条件都为真时结果为真。
[ -f /usr/bin/grep ] && [ -x /usr/bin/grep ] && echo "File exists and is executable"
||
:逻辑或,任意一个条件为真时结果为真。
[ -d /tmp/mydir ] || [ -f /tmp/myfile ] && echo "Either directory or file exists"
!
:逻辑非,反转条件的结果。
[ ! -d /tmp/nonexistentdir ] && echo "Directory does not exist"
希望这些补充能帮助你更好地理解和使用 Linux Shell 运算符。