shell字符串和数组

字符串 : 

1.单引号:

  str = ‘value‘

单引号字符串的限制:

单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;

单引号字串中不能出现单引号(对单引号使用转义符后也不行);

2.双引号:

  str = "value is \"${name}\" \n"

str = "value is , ${name}\n"

双引号的优点:

双引号里可以有变量

双引号里可以出现转义字符

3.获取字符串长度 :

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

4.提取子字符串:

  1. string="alibaba is a great company"
  2. echo ${string:1:4} #输出liba

5.查找子字符串:

  1. string="alibaba is a great company"
  2. echo `expr index "$string" is`

数组 :

1.定义 : 

 array_name=(value0 value1 value2 value3)

2.取值 : 

 ${array_name[*]}

 ${array_name[@]}

 取到所有元素

3.获取数组长度:

  1. # 取得数组元素的个数
  2. length=${#array_name[@]}
  3. # 或者
  4. length=${#array_name[*]}
  5. # 取得数组单个元素的长度
  6. lengthn=${#array_name[n]}
时间: 2024-10-15 18:23:42

shell字符串和数组的相关文章

shell字符串与数组总结

博客主页:http://blog.csdn.net/minna_d 1. 计算字符串长度: echo ${#str} 2. 按字符截取字符串: ${word:begin:length} 3.借助% .%%.#.##对字符串的切割: %:从右向左非贪婪匹配 %%:从右向左贪婪匹配 #:从左向右非贪婪匹配 ##:从左向右贪婪匹配 用法示例: ${str%.*} ${str%%.*} ${str#*.} ${str##*.} PS:"."这里仅仅只是一个普通的点,而不是任意字符 [[emai

shell 字符串转数组

#!/bin/bash string="hello,shell,split,test" #将,替换为空格 array=(${string//,/ }) for var in ${array[@]} do echo $var done 输出 bogon:conf macname$ ./test.sh hello shell split test 还可以写成 #!/bin/bash string="hello,shell,split,test" array=(`echo

shell入门笔记2:字符串、数组、echo与printf

说明: 本文是关于http://c.biancheng.net/cpp/shell/的相关笔记 shell字符串 字符串可以用单引号,也可以用双引号,也可以不用引号. 1 #!/bin/bash 2 3 ##字符串 4 5 #不加引号: 6 #无法出现; 7 echo a 8 echo a;b 9 10 #单引号: 11 #单引号里的任何字符都会原样输出,单引号字符串中的变量替换是无效的: 12 #单引号字符串中不能出现单引号(对单引号使用转义符后也不行). 13 str='this is a

shell 之解释器、变量、字符串、数组

1.Shell简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.Shell 编程跟 java.php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash)

【Linux】shell字符串分割、数组访问、条件判断

参考资料: shell字符串分割再循环:http://www.shangxueba.com/jingyan/1633455.html linux shell中 if else以及大于.小于.等于逻辑表达式介绍:http://www.jb51.net/article/34332.htm Shell数组:shell数组的定义.数组长度:http://c.biancheng.net/cpp/view/7002.html shell 数组长度:http://blog.csdn.net/shaobingj

Shell 脚本知识回顾 (三) —— 替换、运算符、字符串、数组

一.Shell替换:Shell变量替换,命令替换,转义字符 如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value of a is $a \n" 运行结果: Value of a is 10 这里 -e 表示对转义字符进行替换.如果不使用 -e 选项,将会原样输出: Value of a is 10\n 下面的转义字符都可以用在 echo 中: 转义字符

shell切分字符串到数组

shell切分字符串到数组 问题: 对于’aa,bb,cc,dd,ee’这样的字符串输出采用,分隔开的aa bb cc dd ee aa:bb is ok:/home/work按照":"分割开来的aa      bb is ok      /home/work 解决方法1: #!/bin/bash var=’aa,bb,cc,dd,ee’ var=${var//,/ } #这里是将var中的,替换为空格 for element in $var do echo $element done

shell 脚本-关联数组

shell 的关联数组 Shell Associative Array   bashi没有原生的对于类似hash table的支持,不像perl或python.下标数组元素是通过数组下标(数组下标可以是算术表达式,其结果必须是一个整数)来访问的,但是这种访问方式在表达某些关联性很强的数据时会存在限制.shell 提供了另外一种数组,其可以使用任意的字符串作为下标(不必是整数)来访问数组元素.这种数组叫做关联数组(associative array).关联数组的下标和值称为键值对,它们是一一对应的

Linux Shell 创建序列数组

关于linux数组定义,以及生成方法,请看:linux shell 动态生成 数组系列 seq使用技巧 .这里我主要说的是高效生成list 字符串,还有数组方法. 一.seq方法生成: 1 2 3 [[email protected] shell]$ aNumList=$(seq 100); [[email protected] shell]$ echo $aNumList 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2