字符串

字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。

单引号

str='this is a string'

单引号字符串的限制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。

双引号

your_name='qinjx'
str="Hello, I know you are \"$your_name\"! \n"

双引号的优点:

  • 双引号里可以有变量
  • 双引号里可以出现转义字符

拼接字符串

your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1

获取字符串长度

string="abcd"
echo ${#string} #输出 4

提取子字符串

以下实例从字符串第 2 个字符开始截取 4 个字符:

string="runoob is a great site"
echo ${string:1:4} # 输出 unoo

查找子字符串

查找字符 "i 或 s" 的位置:

string="runoob is a great company"
echo `expr index "$string" is`  # 输出 8

注意: 以上脚本中 "`" 是反引号,而不是单引号 "'",不要看错了哦。

Shell 数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。

类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。

定义数组

在Shell中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:

数组名=(值1 值2 ... 值n)

例如:

array_name=(value0 value1 value2 value3)

或者

array_name=(
value0
value1
value2
value3
)

还可以单独定义数组的各个分量:

array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

可以不使用连续的下标,而且下标的范围没有限制。

读取数组

读取数组元素值的一般格式是:

${数组名[下标]}

例如:

valuen=${array_name[n]}

使用@符号可以获取数组中的所有元素,例如:

echo ${array_name[@]}

获取数组的长度

获取数组长度的方法与获取字符串长度的方法相同,例如:

# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}
参考链接:http://www.runoob.com/linux/linux-shell-variable.html

shell脚本——字符串 数组相关推荐

  1. shell脚本字符串截取

    shell脚本字符串截取的8种方法 假设变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. echo ${var#*//} 其中 va ...

  2. shell脚本字符串截取的8种方法

    shell脚本字符串截取的8种方法 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. 1 echo ${var#*//} 其中 ...

  3. shell脚本中数组的使用_Shell脚本中的数组

    shell脚本中数组的使用 Knowing how to work with arrays in shell scripts will help you work with larger datase ...

  4. linux shell脚本字符串连接符,学习Linux shell脚本中连接字符串的方法

    这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...

  5. shell脚本--字符串处理和动态数组

    Linux下的文本处理命令,以清晰的列分割数据为高效处理源: awk 的gsub函数可替换指定字符串 echo "<tr><td>col1</td>< ...

  6. linux shell脚本字符串 字段分隔符 存入数组 根据下标取值

    字段分隔 逗号分隔 [root@oracle low]# cat test1.sh #!/bin/bashtxt='123,456,789'ifs_old=$IFSIFS=$','for i in $ ...

  7. shell脚本中数组的长度表示

    1.shell数组的长度 ${#array[@]} ${#array[*]} 2.shell数组的所有成员 ${array[*]} 3.字符串的长度 ${#str}

  8. Shell脚本学习-数组

    跟着RUNOOB网站的教程学习的笔记 Shell数组 数组中可以存放多个值,Bash Shell只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与PHP类似). 与大部分编程语言类似,数 ...

  9. shell脚本-字符串和变量

    变量.字符串 定义变量+查看变量值 name=jerry #定义变量值 # echo $name jerry #查找变量值 变量类型:运行shell时,会同时存在三种变量 局部变量:仅在当前shell ...

最新文章

  1. 这届 AI 预测欧洲杯冠军,通通被打脸
  2. SilverLight4:在MVVM架构下实现模式窗口
  3. 一天搞定CSS:背景background--03
  4. springwebflux 页面_Spring Webflux 响应式框架入门
  5. python处理一个文件夹下的所有文件并保存在新的文件夹
  6. STM8学习笔记---NTC热敏电阻的使用
  7. php windows svn,windows下安装svnmanager
  8. 微鲸科大讯飞、出门问问合作 TA的语音功能怎么样?
  9. StyleCop学习笔记——初识StyleCop
  10. Jumpserver代码规范
  11. 量子力学概论_科学网—《量子力学导论》潘必才 - 中国科大出版社的博文
  12. 张小龙:微信产品观(上)
  13. 华为销售专家LTC专家许浩明老师:流程是数字化转型的基础,以华为营销LTC,华为铁三角为例
  14. 海信75E5K怎么样 海信75E5K和75E5H区别 哪个好
  15. FSCIL 小样本类增量学习
  16. 如何快速剪辑多个视频,将视频分段保存导出播放
  17. MAX31865模块的使用-基于ZigBee_CC2530芯片 PT100测温
  18. 时序分析(8) -- GARCH(p,q)模型
  19. cnn 句向量_快速理解句向量模型,深度好文,一定要看
  20. Linux的vi编辑器下的常用命令

热门文章

  1. linux网络服务器框架转载
  2. Java中用StreamTokenizer与Scanner读取数据
  3. [leetcode] 22. Generate Parentheses
  4. python将dict中的unicode打印成中文
  5. 【090723】动态调用webservice
  6. 刚才遇到了关于C#使用外部DLL函数上的char*的问题。
  7. 利用Canny边缘检测算子进行边缘检测的原理及OpenCV代码实现
  8. 在OpenCV环境下写的灰度图像二维傅里叶换,幅值计算,频谱平移和将数值归一化到0到255区间的四个函数
  9. plsql连接oracle报错12514,plsql 登录 oracle11 12514 错误的处理方法
  10. java防止用户越权访问文件_针对功能权限(url访问)如何避免越权访问