shell运算符与表达式

变量
含义
$0
当前脚本的文件名
$n
传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2
$#
传递给脚本或函数的参数个数
$*
传递给脚本或函数的所有参数
$@
传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同
$?
上个命令的退出状态,或函数的返回值
$$
当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID

[orc@orc ~]$ cat test.sh
#! /bin/bash
echo "\$0 is: $0"
echo "\$1 is: $1"
echo "\$2 is: $2"
echo "\$* is: $*"
echo "\$# is: $#"
echo "\$@ is: $@"
echo "\$\$ is: $$"
echo "\$? is: $?"
#双引号内属于一个参数
[orc@orc ~]$ ./test.sh "12 '23'"  5
$0 is: ./test.sh
$1 is: 12 '23'
$2 is: 5
$* is: 12 '23' 5
$# is: 2
$@ is: 12 '23' 5
$$ is: 3810634
$? is: 0

格式: [ 表达式 ]
结果: 判断表达是为真返回true, 为假返回false
1 数值型判断
虽然说shell 脚本中任何变量都是字符串, 但是比较的表达式时, 却可以区分按数值比较还是按字符串比较. 比如:11 和 2 , 如果按数值比较那么11 > 2, 如果按字符串比较则 11 < 2

常用判断表达式

表达式    判断逻辑
[ a -eq b ]    判断相等, 若a==b, 则返回true, 否则返回false
[ a -ne b ]    判断不等, 若a!=b, 则返回true, 否则返回false
[ a -gt b ]    判断大于, 若a>b , 则返回true, 否则返回false
[ a -lt b ]    判断小于, 若a
2 字符串判断
注意在判断为空非空时, 需要将变量用”” 包裹起来
常用判断表达式

表达式    判断逻辑
[ -z “str” ]    判断为空, 若为空, 则返回true, 否则返回false
[ -n “str” ]    判断非空,若字符串不为空,则返回true, 否则返回false
[ s1 == s2 ]    判断相等, 若s1和s2相等,则返回true, 否则返回false
[ s1 != s2 ]    判断不相等, 若s1和s2不相等,则返回true, 否则返回false
3 逻辑表达式
shell 中有两种逻辑与和逻辑或表达式, 一种是符号表示 && 和 ||, 另一种是字母表示:-o 和 -a ,但是药注意的用符号表示时, 是两个中括号:[[]], 而用字符表示时是一个中括号[]

1. 逻辑
常用判断表达式

表达式    判断逻辑
[[expr1 && expr2 ]]    逻辑与, 当表达式1 和表达式2 都为真, 返回true,否则返回false
[[ expr1 || expr2 ]]    逻辑或,当表达式1和表达是2都为假,返回true, 否则返回false
[ expr1 -a expr2 ]    逻辑与, 当表达式1 和表达式2 都为真, 返回true,否则返回false
[ expr1 -o expr2 ]    逻辑或,当表达式1和表达是2都为假,返回true, 否则返回false
[ !expr ]    逻辑非, 当表达式为假返回true, 否则返回false
4 单个文件判断
常用判断表达式

表达式    判断逻辑
[ -d file ]    判断文件是否是目录,若是目录,则返回true, 否则返回false
[ -e file ]    判断文件是否存在, 不区分文件类型,若存在,则返回true, 否则返回false
[ -f file ]    判断普通文件是否存在,若存在,则返回true, 否则返回false
[ -L file ]    判断链接文件是否存在,若存在,则返回true, 否则返回false
[ -h file ]    判断硬链接文件是否存在,若存在,则返回true, 否则返回false
[ -r file ]    判断当前用户对文件是否有读权限,若拥有,则返回true, 否则返回false
[ -w file ]    判读当前用户对文件是否有写权限,若拥有,则返回true, 否则返回false
[ -x file ]    判断当前用户对文件是否有执行权限,若拥有,则返回true, 否则返回false

 

运算符(自菜鸟驿站:http://www.runoo

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值