技术标签: shell
Shell 脚本中经常用到字符串,对字符串是否为空的判断很关键。
在 Shell 中利用 -n
来判断字符串是否非空。
例子:
if [[ str1 = str2 ]] # 当字符串 str1 和 str2 有相同内容、长度时为真
if [[ str1 != str2 ]] # 当字符串 str1 和 str2 不等时为真
if [[ -n "str1" ]] # 当字符串 str1 的长度大于 0(非空)时为真
if [[ -z "str1" ]] # 当字符串 str1 的长度为 0(空)时为真
if [[ str1 ]] # 当字符串 str1 为非空时为真
错误用法:
str1=$*
if [[ -n $str1 ]];then
print "with str1"
else
print "without str1"
fi
这种情况下不管传不传参数,总会进入 if 里面,因为不加 ""
时该 if 语句等效于 if [ -n ]
,shell 会把它当成 if [ str1 ]
来处理,-n
这个字符串不为空,所以会进入 if 里面。
正确用法:
需要在 $str1
上加入双引号,即 "$str1"
。
str1=$*
if [[ -n "$str1" ]];then
print "with str1"
else
print "without str1"
fi
在 Shell 脚本中如果有 rm -rf ${path}
这种操作,尽量在执行前先判断变量 path
不为空,如果 path
为空,等同于执行 rm -rf /
,除此之外,在 Bash 的变量扩展语法中,可以用 rm -rf ${path:?ERROR}/*
的形式判断变量是否定义或为空,当变量未定义或为空时自动停止执行脚本,这样可以避免执行全局删除操作。
================================================================================Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements. See the NOTICE file...
原文地址:https://mp.weixin.qq.com/s/-2z7lAGQ3GeSqFfkPGPWNA转载已获授权Google 为帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成一个整体,叫作 Android Jetpack,其包含的组件如下图所示:旧 support 包也被整合进了 Jetpack,例如上图 Foundation 模块的 ...
一、查看防火墙规则iptables -L -n 或者iptables -nvl二、配置默认规则iptables -P INPUT DROP 不允许进iptables -P FORWARD DROP 不允许转发iptables -P OUTUPT ACCEPT 允许出三、增加规则iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT//允许源ip地址为19...
一直以来对python中函数括号的使用,有点分不清楚,到底什么时候用括号,什么时候不用括号,造成了很大困惑。执行结果:根据结果来分析:1、 x = aaa aaa是一个类名,后面没加括号,打印结果 ,表明x是个类2、 由于没有加括号,类没有实例化,y为公有属性,因此x.y打印的结果为you3、foo为aaa类中的函数,称为方法或属性,同时 foo后面也未加括号,打印...
<ul class="ddd"> <li class="solid active">啦啦啦啦</li> <li class="solid">我哦我我</li> <li class="solid">哦哦哦哦</li> <li class="solid">噢噢噢噢</li> ...
java设计模式之——策略模式1,什么是策略模式?策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。2,策略模式有什么好处? 策略模式的好处在于你可以动态的改变对象的行为。3,设计原则 设计原则是把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口(c++z中可以用虚类),然后在类中包含这个对象的实例,这样...
高中数学三年最全、最新、最清晰的思维导图 涵盖高中数学三年所有知识要点集合▼不等式▼函数▼三角函数▼解三角形▼数列▼空间向量与立体几何▼直线方程▼圆的方程▼圆锥曲线▼复数▼简单几何体▼二项式定理▼ 概率与统计...
问题重现最近在公司项目中做一个商品展示的功能,要求在分类后 ,对每个类进行展开、收起操作。想法就是在ListView中嵌套一个ListView,通过动态的显示和隐藏ListView,实现展开和收起操作在同一个页面,实现折叠效果。难点:解决ListView的动态设置问题.先看效果图: 解决思路外面一层是一个ListView,在填充Item的时候,在Item布局设置为LinearLayout,在下面设
我的hbuilder版本是 HBuilder 9.0.2.201803061935点击工具栏的运行,找到运行配置找到chorme 右边再选择 google chorme就可以了 2018-03-26 补充:还有一种情况,最开始你无法打开chrome,然后你按照提示自己设置了一个chrome的路径,最后发现点击chrome图标还是没有用,然后你后来重装...
2019独角兽企业重金招聘Python工程师标准>>> ...
随机模拟——蒙特卡洛算法及Python实现irony•2020 年 04 月 24 日蒙特卡洛算法介绍蒙特卡洛算法(Monte Carlo method)也称统计模拟算法,是一种以概率统计理论为指导的数值计算方法方法。是指使用随机数来解决很多计算问题的方法。蒙特卡洛方法基本思想通常蒙特卡洛算法可以分为两种:1,一种是所求解的问题本身具有内在随机性,借助计算机的运算能力可以直接模拟这种随机的过程...