shell数组常用实例分享

说明:shell中数组的下标默认是从0开始的

1、将字符串放在数组中,获取其长度

代码如下:

#!/bin/bash
str="a b --n d"
array=($str)
length=${#array[@]}
echo $length

for ((i=0; i<$length; i++))
do
echo ${array[$i]}
done

执行结果:
[oracle@99bill-as9 array]$ sh length.sh
4
a

--n
d

2)、打印字符串:


代码如下:

#!/bin/bash
str="a b c"
for i in $str
do
echo $i
done
或者:
#!/bin/bash
str="a b c"
array=($str)
for ((i=0;i<${#array[@]};i++))
do
  echo ${array[$i]}
done

执行结果:
a

c

2、字符串用其他字符分割时


代码如下:

#!/bin/bash

str2="a#b#c"
a=($(echo $str2 | tr '#' ' ' | tr -s ' '))
length=${#a[@]}

for ((i=0; i<$length; i++))
do
echo ${a[$i]}
done
#echo ${a[2]}

执行结果:
a

c

3、数组的其他操作


代码如下:

#!/bin/bash
str="a b --n dd"
array=($str)
length=${#array[@]}

#ouput the first array element直接输出的是数组的第一个元素
echo $array

#Use subscript way access array用下标的方式访问数组元素
echo ${array[1]}

#Output the array输出这个数组
echo ${array[@]}

#Output in the array subscript for 3 the length of the element输出数组中下标为3的元素的长度
echo ${#array[3]}

#Output in the array subscript 1 to 3 element输出数组中下标为1到3的元素
echo ${array[@]:1:3}

#Output in the array subscript greater than 2 elements输出数组中下标大于2的元素
echo ${array[@]:2}

#Output in the array subscript less than 2 elements输出数组中下标小于2的元素
echo ${array[@]::2}

执行结果:
a

a b --n dd
2
b --n dd
--n dd
a b

4、遍历访问一个字符串(默认是以空格分开的,当字符串是以其他分隔符分开时可以参考2)


代码如下:

#!/bin/bash
str="a --m"
for i in $str
do
echo $i
done

执行结果:
a
--m

5、如何使用echo输出一个字符串str="-n". 由于-n是echo的一个参数,所以一般的方法echo "$str"是无法输出的.

解决方法可以有:


代码如下:

echo x$str | sed 's/^x//'
echo -ne "$str\n"
echo -e "$str\n\c"
printf "%s\n" $str(这样也可以)

(0)

相关推荐

  • shell数组常用实例分享

    说明:shell中数组的下标默认是从0开始的 1.将字符串放在数组中,获取其长度 复制代码 代码如下: #!/bin/bashstr="a b --n d"array=($str)length=${#array[@]}echo $length for ((i=0; i<$length; i++))doecho ${array[$i]}done 执行结果:[oracle@99bill-as9 array]$ sh length.sh4a --nd 2).打印字符串: 复制代码 代码

  • php冒泡排序、快速排序、快速查找、二维数组去重实例分享

    一.冒泡排序 复制代码 代码如下: //冒泡排序function bubble_sort($array){    $count=count($array);    if($count <= 0){        return false;    }    for($i=0;$i<$count;$i++){        for($j=0;$j<$count-$i-1;$j++){            if( $array[$j] > $array[$j+1] ){        

  • 25个好用的Shell脚本常用命令分享

    1.列出所有目录使用量,并按大小排序. 复制代码 代码如下: ls|xargs du -h|sort -rn #不递归下级目录使用du -sh 2.查看文件排除以#开关和空白行,适合查看配置文件. 复制代码 代码如下: egrep -v "^#|^$"  filenamesed '/#.*$/d; /^ *$/d' 3.删除空格和空行. 复制代码 代码如下: sed '/^$/d' filename #删除空行sed 's/ //g' filenamesed 's/[[:space:]

  • 使用C语言实现vector动态数组的实例分享

    下面是做项目时实现的一个动态数组,先后加入了好几个之后的项目,下面晒下代码. 头文件: # ifndef __CVECTOR_H__ # define __CVECTOR_H__ # define MIN_LEN 256 # define CVEFAILED -1 # define CVESUCCESS 0 # define CVEPUSHBACK 1 # define CVEPOPBACK 2 # define CVEINSERT 3 # define CVERM 4 # define EXP

  • php常用数组函数实例小结

    本文实例总结了php常用数组函数.分享给大家供大家参考,具体如下: 1. array array_merge(array $array1 [, array  $array2 [, $array]]) 函数功能:将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面.返回结果的数组. 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面. 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式

  • Java数组常用排序算法实例小结

    本文实例讲述了Java数组常用排序算法.分享给大家供大家参考,具体如下: 1.冒泡排序法 SortArray_01.java public class SortArray_01 { public static void main(String args[]) { int[] array = { 14, 5, 86, 4, 12, 3, 21, 13, 11, 2, 55, 66, 22 }; // 创建一个初始化的一维数组array System.out.println("未排序的数组:&quo

  • PHP数组常用函数实例小结

    本文实例讲述了PHP数组常用函数.分享给大家供大家参考,具体如下: 统计数组元素的个数和唯一性 1.count() 函数的作用是计算数组中的元素数目或对象中属性个数.对于数组,返回其元素的个数,对于其他值返回1. int count(mixed var[,int mode]) 第一个参数是必须的,传人个计算的数组或对象.第二个参数是可选,规定函数的模式是否递归地计算多维数组中数组的元素个数,可能的值是0 或1,0为默认值,不检测多维 数组,为 1则检测多维数组 示例: $a=array("a&q

  • Linux shell数组循环的实例详解

    shell数组循环 测试shell数组,循环的例子: arr=("a" "b" "c") echo "所有的内容如下:"${arr[@]} echo "数组的长度:"${#arr[*]} for var in ${arr[@]} do echo "打印的内容:"$var done 输出的内容如下: 以上就是Linux shell数组循环的实例详解,如有疑问请留言或者到本站社区交流讨论,感

  • 基于Shell中for循环的几个常用写法分享

    第一类:数字性循环 for1-1.sh #!/bin/bash for((i=1;i<=10;i++)); do echo $(expr $i \* 3 + 1); done for1-2.sh #!/bin/bash for i in $(seq 1 10) do echo $(expr $i \* 3 + 1); done for1-3.sh #!/bin/bash for i in {1..10} do echo $(expr $i \* 3 + 1); done for1-4.sh #!

  • python ndarray数组对象特点及实例分享

    1.numpy数组是同质数组,即所有元素的数据类型必须相同. 2.ndarray数组一般要求所有元素的数据类型相同,下标从0开始,最后一个元素的下标为数组长度减1. 实例 import numpy as np a = np.arange(0, 5, 1) print(a) b = np.arange(0, 10, 2) print(b) 知识点扩充: 定义数组 >>> import numpy as np >>> m = np.array([[1,2,3], [2,3,

随机推荐