shell变量赋值语法:

使用规则 解释
单引号 所见即所得,即输出时会将单引号内的所有內容都原样输出,或者描述为单引号里面看到的是什么就会输出什么,这称为强引用
双引号 (默认) 输出双引号内的所有内容;如果内容中有命令(要反引下)、变量、特殊转义符等,会先把变量、命令、转义字符解析出结果,然后再输出最终内容,推荐使用,这称为弱引用
无引号 赋值时,如果变量内容中有空格,则会造成赋值不完整。而在输出内容时,会将含有空格的字符串视为一个整体来输出;如果内容中有命令(要反引下)、变量等,则会先把变量、命令解析出结果,然后输出最终内容;如果字符串中带有空格等特殊字符,则有可能无法完整地输出,因此需要双引号替代无引号的情况,特别是对变量赋值时改加双引号。一般连续的字符串、数字、路径等可以不加任何引号进行赋值和输输出,不过最好是用用
反引号 一般用于引用命令,执行的时候命令会被执行,相当于S0,赋值和输出都要用“将命令引起来

引用:shell中定义变量用双引号和单引号以及不用引号的区别

无引号使用举例:

无引号赋值,含有空格:

将world解释为变量

无引号赋值,变量中含有空格:

正常输出:

无引号使用总结:
赋值时,不要插入空格等特殊字符。

shell内置字符串语法:

在编写shell程序时,经常会涉及到字符串相关操作。有许多命令语句,如awk,sed都能够做字符串各种操作。 事实上shell内置一系列操作符号,能够达到相似效果,使用内部操作符会省略启动外部程序等时间,因此速度会很的快。如果内置的操作符能够做到的,优先使用内置的。

引用:shell字符串内置的常用操作

1 读取字符串值

表达式 含义
${var} 变量var本来的值
${var-default} var没声明返回default,但不改变var的值
${var:-default} var没声明或其值为空返回default,但不改变var的值
${var=default} var没有声明返回default,并将var的值设置为default
${var:=default} var没声明或其值为空返回default,并将var的值设置为default
${var+other} var被声明返回other,但不改变var的值
${var:+other} var被声明且不为空返回other,但不改变var的值
${var?err_msg} var没有被声明,将消息err_msg送到标准错误输出
${var:?err_msg} var没声明或者为空,将消息err_msg送到标准错误输出
${!varprefix*} 匹配之前全部以varprefix开头进行声明的变量
${!varprefix@} 匹配之前全部以varprefix开头进行声明的变量

2 字符串操作

表达式 含义
${#string} string的长度
${string:position} 在string中, 从位置position开始提取子串
${string:position:length} 在string中, 从位置position开始提取长度为$length的子串
${string#substring} 从变量string的开头, 删除最短匹配substring的子串
${string##substring} 从变量string的开头, 删除最长匹配substring的子串
${string%substring} 从变量string的结尾, 删除最短匹配substring的子串
${string%%substring} 从变量string的结尾, 删除最长匹配substring的子串
${string/substring/replacement} 使用replacement, 来取代第一个匹配的substring
${string//substring/replacement} 使用replacement, 取代全部匹配的substring
${string/#substring/replacement} 假设string的前缀匹配substring, 那么就用replacement来取代匹配到的substring
${string/%substring/replacement} 假设string的后缀匹配substring, 那么就用replacement来取代匹配到的substring
 说明:"substring”可以为正则表达式

shell内置字符串举例 :

1.字符串替换

${string/substring/replacement}
string是一个shell变量(${}规则)

shell内置字符串替换相关推荐

  1. awk内置字符串函数详解

    awk提供了许多强大的字符串函数,见下表: awk内置字符串函数 gsub(r,s) 在整个$0中用s替代r gsub(r,s,t) 在整个t中用s替代r index(s,t) 返回s中字符串t的第一 ...

  2. awk 内置字符串函数简介

    awk 内置字符串函数操作实例 awk中,简单的字符串赋值和拼接操作可以通过直接书写而实现(内部支持),但是,更加复杂的 操作必须使用字符串操纵函数实现. 由此见, awk语法 和 C 语言还是非常接 ...

  3. fooview辅助功能 shell_列出所有Bash Shell内置命令的方法示例

    前言 Shell有很多内置在其源代码中的命令.这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快.不同的Shell内置命令有所不同. 内置命令包含在 bash shell 本身里面 ...

  4. linux-help命令,查询shell内置命令帮助文档

    命令:help 描述:help + 命令(shell内置命令).可以查看shell内置命令的帮助文档. 范例:help if

  5. mysql 子字符串函数_MySQL 内置字符串函数

    MySQL内置函数concat() 用于连接字段 LTRIM(),RTRIM(),TRIM() 分别用于去除左边空格,右边空格,以及左右空格都去除NOW() 放回当前的日期和时间UPPER() 和LO ...

  6. python学习---常见的内置字符串(二)

    注:将字符串内置函数记录整理下,之后需要用到的时候便于查找学习. 1.capitalize() : 第一个字符变为大写 例子: str2 = 'xiaoxie' str2.capitalize() = ...

  7. linux sh 帮助,技术|获取有关 Linux shell 内置命令的帮助

    Linux 内置命令属于用户 shell 的一部分,本文将告诉你如何识别它们并获取使用它们的帮助. Linux 内置命令是内置于 shell 中的命令,很像内置于墙中的书架.与标准 Linux 命令存 ...

  8. python内置字符串处理函数_Python内置的字符串处理函数

    生成字符串变量 str='python String function' 字符串长度获取:len(str) 例:print '%s length=%d' % (str,len(str)) 连接字符串 ...

  9. Shell脚本——内置命令

    一.内置命令 所谓 Shell 内置命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件. 例如,用于进入或者切换目录的 cd 命令,虽然我们一直在使用它,但如果不加以注意很难意识 ...

最新文章

  1. 算法-------反转字符串
  2. python如何读取公共盘的文档_如何使用 Sphinx 给 Python 代码写文档 | Linux 中国
  3. dev layoutview 怎么显示大小_Liunx驱动学习:基于imx6ul 驱动oledssd1306 实现终端显示...
  4. 如何让API回调你的VC类成员函数而不是静态函数
  5. mysql数据库存储引擎选择_MySQL数据库性能优化之存储引擎选择
  6. 链表中位数(Middle of the Linked List)
  7. qt中根据数据解析的结果动态的创建控件并布局
  8. nil和NSNull
  9. “七大属性加持,三个全新升级组件”这个高性能利器有点厉害
  10. 【5G科普】华为码chine姐姐聊5G 第1期:5G究竟是个啥?
  11. 笔记本暗屏维修多少钱_电视机烧了维修多少钱?
  12. 【服务器】【私人书库】宝塔安装calibre-web
  13. 建模常用Python代码
  14. 学习Python的pyecharts的过程中踩到的一些坑
  15. 计算机管理下的打印机参数设置,提高办公效率 11种方法设置打印参数
  16. CF1060F Shrinking Tree(期望、树形dp)
  17. 计算机替换的快捷键,Autointo Hotkey Changer电脑快捷键替换工具
  18. 第十二届蓝桥杯省赛JAVA B组杨辉三角形个人题解
  19. java虚拟机JVM内存不够,OutOfMemorry Error
  20. Eclipse+ GNU ARM Eclipse Plug-in+ Sourcery G++ Lite Edition for ARM+OPENCD+Jlink的开源开发环境。

热门文章

  1. Android(java)学习笔记161:开发一个多界面的应用程序之人品计算器的简单实现...
  2. 鸿蒙系统官宣不上市了么,鸿蒙系统再遭困难!官宣下调3亿装机目标:留给华为的时间不多了...
  3. Python简单的位运算
  4. 11月11日光棍哥们的寂寞!哥写的不是歌,哥写的是寂寞!
  5. 【C++】控制台贪吃蛇
  6. NOJ-求广义表深度-西工大数据结构
  7. noj14 求广义表深度
  8. 深度学习卷积神经网络学习小结2
  9. 微信小程序开源源码,仿京东、网易云、拼多多等
  10. 新手达梦数据库碰到的常见问题