2020/10/21-shell

单双引号有区别
变量放在单引号里面告诉shell忽略特殊字符,双引号告诉shell解释原有符号的原有意义。

N=1
var="1 2 $N"
echo $var ----> 1 2 1

var1= '1 2 $N'
echo $var1 ---> 1 2 1

${}的定义

切片字符串
替换字符串
截取字符串

var='hello world'
echo ${var:1:4}
#解释为:将var字符串从第一个开始往后截取4个
echo ${var:(-3):2}
#解释为:将var字符串倒数第三个开始,往后截取2个字符

echo ${var/test1/test2}
# 解释为将var字符串test1替换为test2,替换第一个
echo ${vare://test1/}
#解释为将var字符串中所有的test1替换为空字符串

echo ${var://[0-9]/}
#解释为将var字符串中的所有数字替换为空字符串

echo ${var#*//}
#解释为删除var字符串中以‘//’分割的左侧的所有前缀

变量状态赋值

${var:-string}
#解释为var为空则返回string

${var:+string}
#解释为var不为空则返回string

${var:=string}
#解释为var为空就重新赋值

判断变量是否为真


[ -n "$a" ] && echo yes || echo no
#解释为$a不等于零为真,等于零为假

[ -z "$a" ]
#解释为$a为零则为真,不等于零为假

[ -e path ]
#解释为判断path是否存在,存在为真,不存在为假
[ -f file_path ]
#解释为判断文件存在为真,不存在为假
[ -d dir_path ]
#目录存在为真,不存在为假
[ -r file_path ]
#解释为判断文件是否存在可读权限,拥有可读权限为真,否则为假
[ -w file_path ]
#解释为判断文件是否有可写权限,有则为真
[ -x file_path ]
#解释为文件是否有可执行权限,拥有可执行权限为真
[ -s file_path ]
#解释为文件存在并且大小大于零为真,file_path存在并且大小大于0为真

布尔运算符

[ ! 1 -eq 2 ] 为真。条件结果取反
[ 1 -eq 1 -a 2 -eq 2 ] 为真,和关系true and true 为true
[ 1 -eq 1 -o 2 -eq 1 ] 为假,或关系true or false 为false

逻辑判断符

&& 逻辑和,前面为真则执行后面的
|| 逻辑或,前面为假则执行后面的

整数运算

+ 加
- 减
* 乘
/ 除
% 取余

运算表达式

$(())    $((1+1))
$[] $[1+1]

echo $[2*3]

echo $((2>3))
:0
echo $((2<3))
:1
echo $[2>1]
:1
echo $[1>2]
:0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值