shell脚本语言2 (持续更新)

三、 Shell字符串详解

1.string:字符串

输出 “helloworld”

2.查看字符串

长度(个数):echo ${#str1} 查看str1变量字符串个数 #存储str1的值供$调用。   *、@都有各自本身的含义不能在此处使用

选择显示:echo ${str1:0:1} 0:1str1变量字符串从第一个字符开始取值,只取一个。显示h

取反:echo ${str1:0-1:1}从右往左截取第一个字符,只取一个。显示o

echo ${str1:0-2:1}从右往左截取第二个字符,只取一个。显示l 。。。。。

优化:for i in {1..5};do echo $i;done(正向排序竖向1-5) /

反向排序竖向str1的内容:len=${#str1} for i in `seq 1 $len` ;do echo ${str1:0-$i:1};done

脚本模式:

换行

不换行:

3.指定字符串截取

截取右侧字符 echo ${str1#* l}截取第一个l往后的字符串 echo ${str1##*l}截取第二个l之后的字符

截取左侧字符 echo${str1%l*}截取第一个l往前的子字符串

4、Shell的格式化输出printf 默认不换行

换行加精确小数点后两位

四、条件测试命令

1.命令返回结果 $?

命令执行成功显示0 不成功非0

2.[  ] 与 test 等效

shell语句中用来条件测试

test 1 -gt 2    gt:>

$? 不显示零

3.[ ] 和 [[ ]] 的区别

区别一、[[ ]]仅在特定shell环境下使用

区别二、[[ ]]可支持数学类型的操作数 < >     没说就不支持 ,而[ ] 都不支持

区别三、[ ]中 用 -a ; -o 表示逻辑与和逻辑或,[[ ]]中用&& ;||表示逻辑与和逻辑或 不支持-a -o

区别四、[ ]中 ==是字符匹配(精确) ;[[ ]]中==是模式匹配(模糊)

区别五、[ ]不支持正则匹配,[[ ]]支持用=~(包含什么什么)进行正则匹配

区别六、[ ]仅在部分Shell中支持用()进行分组,[[ ]]均支持

区别七、 [ ]中如果变量没有定义,那么需要用双引号引起来,表示字符串,在[[ ]]中不需要

4.test表达式

语法1:test <测试表达式> 说明:test命令和<测试表达式>之间至少有一个空格

在shell中,大于用 -gt 表示,小于用 -lt 表示,大于或等于用 -ge 表示,小于或等于用 -le表示 ,不相等用-ne 表示 此处返回字符串学习最顶

((1>2))里面不需要用空格

5.变量测试

语法规则:-v VAR 变量var是否被定义

[-v str3] echo $? 显示1 未被定义

语法规则:-r VAR 变量var是否被引用

[-R str3] echo$? 显示1未被引用

5.2文件测试表达式

5.3字符串测试表达式

用法:

5.4整数测试表达式

5.5逻辑操作符

检测当前目录下是否存在1.txt; 是否为文件; 如果都是真的则执行下面 是否是.txt类型文件

5.6()与 { }

( )和 { }都可以将多个命令组合再一次,批量执行,{ } 里的内容需要与两侧用空格隔开并在命令结尾加上;

( )会开启子shell,并且list中变量赋值及内部命令执行后,将不再影响后续的环境

与运行命令时 bash 和source类似

{ } 不会开启子shell,在当前shell中运行,会影响当前shell环境

案例 磁盘空间检查 大于80显示不足 小于80显示充足

5.7 使用read命令命令来接受输入

设定不显示密码、3秒后返回

!!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值