Shell - 简明Shell入门03 - 字符串(String)
示例脚本及注释
#!/bin/bash
str="Shell"
str2="Hello $str !"
str3="Hello ${str} !"
echo "拼接字符串: $str2"
echo "拼接字符串: $str3"
test1="一二三四五六七八九零"
echo "截取test1: " $test1
echo '${#var},返回变量字符串长度:' ${#test1}
echo '${var:index},截取字符串:' ${test1:2} # 返回从index开始到末尾的内容
echo '${var:index},截取字符串:' ${test1:0-3} # 返回从倒数index开始到末尾的内容
echo '${var:index:length},截取字符串:' ${test1:3:5} # 返回从index开始的length个字符的内容
test2="http://192.168.1.1/index.htm"
echo "过滤test2: " $test2
echo '${var#string},短匹配过滤字符串:' ${test2#*/} # 返回从左边删除string后的字符串
echo '${var##string},长匹配过滤字符串:' ${test2##*/} # 返回从左边删除string后的字符串
echo '${var%string},短匹配过滤字符串:' ${test2%/*} # 返回从右边删除string后的字符串
echo '${var%%string},长匹配过滤字符串:' ${test2%%/*} # 返回从右边删除string后的字符串
test3="12345678901234567890"
echo "替换test3: " $test3
echo '${var/substring/newstring},替换字符串:' ${test3/0/零} # 返回var中第一个substring被替换成newstring后的字符串
echo '${var//substring/newstring},替换字符串:' ${test3//0/零} # 返回var中所有substring被替换成newstring后的字符串
# ### 特殊的替换
#
# ${var:-string}
# - 若变量var值为空时,string作为${var:-string}的值;
# - 若变量var值不为空时,变量var的值作为${var:-string}的值;
#
# ${var:+string}
# - 当变量var值为空时,变量var的值作为${var:-string}的值;
# - 当变量var值不为空时,string作为${var:-string}的值;
#
# ${var:=string}
# - 若变量var值为空时,string作为${var:-string}的值,并且变量var也被赋值为string;
# - 若变量var值不为空时,变量var的值作为${var:-string}的值;
# - 可用于判断变量是否赋值,如果值为空则指定一个默认值;
#
# ${var:?string}
# - 若变量var为空,则把string输出到标准错误中,并从脚本中退出;
# - 若变量var不为空,变量var的值作为${var:-string}的值;
# - 可用于判断变量是否赋值;
Shell - 简明Shell入门03 - 字符串(String)的更多相关文章
- Shell - 简明Shell入门
本文以示例和注释的方式,对Shell编程的基本知识点进行了总结和回顾,所有脚本均已做了基本的调试和验证. Shell - 简明Shell入门 01 - 第一个脚本 脚本的定义.执行方法以及echo命令 ...
- Shell - 简明Shell入门01 - 第一个脚本(HelloShell)
示例脚本及注释 #!/bin/bash echo "hello shell!" # 打印字符串"hello shell!" echo "Date: & ...
- Shell - 简明Shell编程
本文是对Shell脚本编程的总结和回顾,所有涉及的脚本均已做了基本的调试和验证. [toc] 测试环境信息 [root@CentOS7 ~]# uname -a Linux CentOS7 3.10. ...
- Shell - 简明Shell入门14 - 操作符(Operator)
示例脚本及注释 #!/bin/bash echo "No code, just some comments." # ### 通配符 # * 代表任意(0个或多个)字符 # ? 代表 ...
- Shell - 简明Shell入门13 - 用户输入(UserInput)
示例脚本及注释 1 - arguments #!/bin/bash if [ -n "$1" ];then # 验证参数是否传入 echo "The first para ...
- Shell - 简明Shell入门11 - 调用脚本(CallTheScript)
示例脚本及注释 主脚本: CallTheScript.sh #!/bin/bash . ./11-subscript.sh # 调用其他脚本;注意点号"."和文件路径之间有一空格; ...
- Shell - 简明Shell入门07 - 数组(Array)
示例脚本及注释 #!/bin/bash test0=() # 定义数组 test1=(a b c d e f) # 定义数组 test2=( # 定义数组 'A?' "BB!" C ...
- Shell - 简明Shell入门04 - 判断语句(If)
示例脚本及注释 #!/bin/bash var=$1 # 将脚本的第一个参数赋值给变量var if test $var # test - check file types and compare va ...
- Shell - 简明Shell入门02 - 变量(Variable)
示例脚本及注释 #!/bin/bash v1=test-variable_123 # 全局变量 v2=12345 v3='This is a test!' # 赋值语句使用单引号或双引号可以包含空格 ...
随机推荐
- 爬虫之mongodb数据库
一 mongodb的介绍 1.易用性:mongodb是一款强大.灵活并且易扩展的数据库.他面向于文档的数据库,而不是关系性数据库.不采用关系型主要是为了获得更好的扩展性.还有一个好处就是面向文档的数据 ...
- bootstrap之css样式
一 bootstrap的介绍 Bootstrap是将html,css和js的代码打包好了,只管我们拿来调用.是基于jquery开发的. 使用BootCDN提供的免费CDN加速服务,同时支持http和h ...
- 2019.01.22 51nod 1203 JZPLCM(线段树+链表)
传送门 一道很有意思的题. 题意简述:给一个数列,多次询问区间的lcmlcmlcm,答案对1e9+71e9+71e9+7取模. 思路:首先考虑到一个区间的lcmlcmlcm就是其中所有出现过的素数的最 ...
- 修改oralce数据库用户名和密码
首先以sys用户登录数据库 一.修改用户名 查到到所需修改用户名称的用户需要:select user#,name from user$;(例如查到有一个normal的用户对应的user#=61) 修改 ...
- java常用设计模式三:原型模式
在说原型模式之前先说一下浅拷贝和深拷贝的概念 一.浅拷贝和深拷贝 1.浅拷贝 在java中,对象创建后需要有一个引用变量来指向该对象实际的地址空间,也就是说引用变量与对象实体是两个不同的数据体.在Ob ...
- java socket之多人聊天室Demo
一.功能介绍 该功能实现了一个类似QQ的最简单多人聊天室,如下图所示. 二.目录结构 三.服务端 1)SocketServer类,该类是服务端的主类,主要负责创建聊天窗口,创建监听客户端的线程: pa ...
- Event.target和Event.currentTarget的区别
<style> * { margin:0; padding:0; list-style:none; } #ul { width:400px; height:250px; margin:0 ...
- flex 布局 计算器
flex布局计算器 <!doctype html> <html> <head> <style> .box{ display: flex; flex-di ...
- Django-配置、静态文件与路由
-----配置文件 1.BASE_DIR BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 2.DEBU ...
- web-day12
第12章WEB12-JSP&EL&JSTL篇 今日任务 商品信息的显示 教学导航 教学目标 掌握JSP的基本的使用 掌握EL的表达式的用法 掌握JSTL的常用标签的使用 教学方法 案例 ...