欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

常用的shell逻辑运算

程序员文章站 2022-03-19 13:27:19
...

shell逻辑运算符

1. 关于档案与目录的侦测逻辑卷标!
-f 常用!侦测『档案』是否存在 eg: if [ -f filename ]
-d 常用!侦测『目录』是否存在
-b 侦测是否为一个『 block 档案』
-c 侦测是否为一个『 character 档案』
-S 侦测是否为一个『 socket 标签档案』
-L 侦测是否为一个『 symbolic link 的档案』
-e 侦测『某个东西』是否存在!
2. 关于程序的逻辑卷标!
-G 侦测是否由 GID 所执行的程序所拥有
-O 侦测是否由 UID 所执行的程序所拥有
-p 侦测是否为程序间传送信息的 name pipe 或是 FIFO (老实说,这个不太懂!)
3. 关于档案的属性侦测!
-r 侦测是否为可读的属性
-w 侦测是否为可以写入的属性
-x 侦测是否为可执行的属性
-s 侦测是否为『非空白档案』
-u 侦测是否具有『 SUID 』的属性
-g 侦测是否具有『 SGID 』的属性
-k 侦测是否具有『 sticky bit 』的属性
4. 两个档案之间的判断与比较 ;例如[ test file1 -nt file2 ]
-nt 第一个档案比第二个档案新
-ot 第一个档案比第二个档案旧
-ef 第一个档案与第二个档案为同一个档案( link 之类的档案)
5. 逻辑的『和(and)』『或(or)』
&& 逻辑的 AND 的意思
|| 逻辑的 OR 的意思
6. 运算符号
= 等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串
!= 不等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串
< 小于 应用于:整型比较 在[] 中,不能使用 表示字符串
> 大于 应用于:整型比较 在[] 中,不能使用 表示字符串
-eq 等于 应用于:整型比较
-ne 不等于 应用于:整型比较
-lt 小于 应用于:整型比较
-gt 大于 应用于:整型比较
-le 小于或等于 应用于:整型比较
-ge 大于或等于 应用于:整型比较
-a 双方都成立(and) 逻辑表达式 –a 逻辑表达式
-o 单方成立(or) 逻辑表达式 –o 逻辑表达式
-z 空字符串
-n 非空字符串

判断字符串是否为空

#!/bin/bash

str1=""

function isStrNull {
    [[ ! -n "$1" ]] && echo 'ture'
}

isStrNull $str1

常用的shell逻辑运算
判断字符串相等

#!/bin/bash

str1="str1"
str2="str2"
str3="str1"

function comparison {
    if [ "$1" == "$2" ]; then
        echo "true"
    else
        echo "false"
    fi
}

comparison $str1 $str2
comparison $str1 $str3

常用的shell逻辑运算
判断文件是否存在

#!/bin/bash

basePath=$(cd `dirname $0`; pwd)
filePath="${basePath}/file.txt"

function isFileExist {
    if [ ! -f "$filePath" ]; then
        echo "false"
    else
        echo "true"
    fi
}

isFileExist
touch $filePath
isFileExist

常用的shell逻辑运算
for循环输出

#!/bin/bash

echo "in:"
for i in {1..10}
do
    echo $i
    i=$[ $i + 1 ]
done

echo "i ++:"
for ((i=1; i<=10; i ++))
do
    echo $i  
done

echo "seq:"
for i in `seq 1 10`
do
    echo $i  
done

常用的shell逻辑运算
while循环计算1到100之间所有奇数之和

#!/bin/bash

i=1
sum=0
while [ $i -le 100 ]
do
  let sum=sum+$i
  let i+=2
done

echo $sum

常用的shell逻辑运算

相关标签: shell