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   疯狂的妞妞  阅读(20)  评论(0编辑  收藏  举报

(评论功能已被禁用)
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
历史上的今天:
2017-06-20 将class文件打包成Jar
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示