shell - 逻辑运算

记录一些与或非相关的逻辑运算

数字比较

  • -eq 等于,如: if [ "$a" -eq "$b" ]
  • -ne 不等于,如: if [ "$a" -ne "$b" ]
  • -gt 大于,如: if [ "$a" -gt "$b" ]
  • -ge 大于等于,如: if [ "$a" -ge "$b" ]
  • -lt 小于,如: if [ "$a" -lt "$b" ]
  • -le 小于等于,如: if [ "$a" -le "$b" ]
  • 大于(需要双括号),如: if (( "$a" > "$b" ))
  • 大于等于(需要双括号),如: if (( "$a" >= "$b" ))
  • 大于(使用 test 命令),如:if test $a -gt $b

字符串比较

  • 相等,if [ "$a" = "$b" ]
  • 不相等,if [ "$a" != "$b" ]
  • 相等(使用 test),if test $a = $b
  • 长度为0,if [ -z "$a" ]

逻辑与

使用方法一

if [ $a == 1 -a $a == 2 ]; then
  echo "hello world" 
fi  

使用方法二

if [ $a == 1 ] && [ $a == 2 ]; then
  echo "hello world" 
fi  

逻辑或

使用方法一

if [ $a == 1 -o $a == 2 ]; then
  echo "hello world" 
fi  

使用方法二

if [ $a == 1 ] || [ $a == 2 ]; then
  echo "hello world" 
fi  

非运算

if !(( $a == 1 ))
then
   echo "hello world" 
fi

判断文件是否存在

#!/bin/bash

file="path/to/your/file"
 
if [ -e "$file" ]; then
    echo "$file exist."
else
    echo "$file not exist."
fi

判断是不是文件

#!/bin/bash
 
path=$1
 
if [ -f "$path" ]; then
    echo "$path is a file."
elif [ -d "$path" ]; then
    echo "$path is a directory."
else
    echo "$path is neither a file nor a directory."
fi

posted on 2024-06-20 10:02  疯狂的妞妞  阅读(1)  评论(0编辑  收藏  举报

导航