Linux中通用表达式


逻辑连接符

&&:与连接,第一个成功了,第二个才执行
||:或连接,第一个失败了,第二个才执行
;:无连接关系

cd /fuyun && ll #第一条命令执行成功才执行第二条命令
-bash: cd: /fuyun: No such file or directory

cd ../ && ll #第一条命令执行失败则不执行第二条命令
total 12
drwxr-xr-x 2 fuyun fuyun 4096 Mar 22 16:35 data
drwxr-xr-x 2 fuyun fuyun 4096 Mar 19 17:00 logs
drwxr-xr-x 2 fuyun fuyun 4096 Mar 24 13:49 shell

pwd || ll #第一条命令执行成分,则不执行第二条命令
/home/fuyun

cd /fuyun || ll #第一条命令执行失败,则执行第二条命令
-bash: cd: /fuyun: No such file or directory
total 12
drwxr-xr-x 2 fuyun fuyun 4096 Mar 22 16:35 data
drwxr-xr-x 2 fuyun fuyun 4096 Mar 19 17:00 logs
drwxr-xr-x 2 fuyun fuyun 4096 Mar 24 13:49 shell

pwd ; ll #无连接关系,所有命令都会执行
/home/fuyun
total 12
drwxr-xr-x 2 fuyun fuyun 4096 Mar 22 16:35 data
drwxr-xr-x 2 fuyun fuyun 4096 Mar 19 17:00 logs
drwxr-xr-x 2 fuyun fuyun 4096 Mar 24 13:49 shell

cd /fuyun ; ll
-bash: cd: /fuyun: No such file or directory
total 12
drwxr-xr-x 2 fuyun fuyun 4096 Mar 22 16:35 data
drwxr-xr-x 2 fuyun fuyun 4096 Mar 19 17:00 logs
drwxr-xr-x 2 fuyun fuyun 4096 Mar 24 13:49 shell

内置判断

字符串

[ $a = $b ]
[ $a = $b ];echo $?
[ $a > $b ];echo $?
[ $a < $b ];echo $?
[ $a != $b ];echo $?
-z:判断变量是否为空,空返回true,非空返回false
-n:判断变量是否不为空,不为空返回true

#!/bin/bash

str1='stringOne'
str2='stringTWO'

int1=12
int2=36

#字符串判断
if [ $str1 = $str2 ]; then #注意[  ]里面的空格
  echo "$str1 = $str2"
elif [ $str1 \< $str2 ]; then
  echo "$str1 < $str2"
else
  echo "$str1 > $str2"
fi 

#判断变量是否为空
if [ -z $1 ]; then #-z:判断变量是否为空,空返回true,非空返回false
  echo "没有输入参数1"
elif [ -n $1 ]; then #-n:判断变量是否不为空,不为空返回true
  echo "参数1为:$1"
fi

数值判断

[]:
-eq:等于
-ne:不等于
-gt:大于
-ge:大于等于
-lt:小于
-le:小于等于
[ $a -eq $b ]; echo $?

(()):高级语言
(($a==$b))
!= >= <= < >

#!/bin/bash

#数值判断
if [ $int1 -eq $int2 ]; then
  echo "$int1 = $int2"
elif [ $int1 -lt $int2 ]; then
  echo "$int1 <= $int2"
else
  echo "$int1 >= $int2"
fi 

#数值高级写法
if (($int1==$int2)); then #注意不能有空格
  echo "$int1 = $int2"
elif (($int1<=$int2)); then
  echo "$int1 <= $int2"
else
  echo "$int1 >= $int2"
fi 

文件和目录判断

-f:判断是否是一个文件
[ -f /etc ];echo $?
-d:判断是否是一个目录
-e:判断是否存在
-w:判断是否有可写权限
-r:判断是否有可读权限
-x:判断是否有可执行权限

#!/bin/bash

#文件判断
if [ -f /etc ]; then
  echo "是文件"
else
  echo "不是文件"
fi

#目录判断 
if [ -d /etc ]; then
  echo "是目录"
else
  echo "不是目录"
fi

#判断文件或目录是否存在
if [ -e /etc ]; then
  echo 文件或目录存在
else
  echo 文件或目录不存在
fi

#判断文件或目录是否有写、读、执行权限
if [ -w /etc ];then
  echo 文件或目录有写的权限
else
  echo 文件或目录没有写的权限
fi

if [ -r /etc ];then
  echo 文件或目录有读的权限
else
  echo 文件或目录没有读的权限
fi

if [ -x /etc ]; then
  echo 文件或目录有执行的权限
else
  echo 文件或目录没有执行的权限
fi

数值运算

$((a+b))/$(($a+$b))
$[ $a + $b ]

猜你喜欢

转载自blog.csdn.net/lz6363/article/details/88778337