linux shell脚本中,数组名称是一个变量,怎么打印出它里面的元素?

作者&投稿:宁邰 (若有异议请与网页底部的电邮联系)
在shell中如何把ls的输出存进一个数组变量中~

set -a myfilesindex=0for f in `ls`; do myfiles[index]=$f; let index=index+1; done

1、首先在shell中,定义一个字符串变量,例:str='bbc123uu789'。

2、使用echo输出变量$str的值,例:#注释:shell中定义变量不需要使用$符号,使用变量的时候需要使用$符号echo $str。

3、使用sed指令,对变量进行处理,例:echo $str|sed 's/./&\+/g'#注释:sed是文本流的处理指令,不会对原文件的内容造成破坏,同时sed支持正则表达式,所以使用起来特别强大#经过以上简单处理之后,字符之间被+符号分隔开来了。

4、sed指令本身并不会原文本造成破坏,所以,再次输出变量$str,值并未改变。

5、使用空格对字符进行分隔,只需要指定sed语法种的符号即可,例:echo $str|sed 's/./& /g'#注释:掌握了这个,想使用什么符号分隔都可以,在&符号后指定就可以了。

6、扩展一下,按照三个字符一组,对字符串进行分隔,例:echo $str|sed 's/.../& /g'。

题主你好,

代码及测试截图如下:

下面这个例子可能对题主有帮助:

说明: array和array1是两个数组, 其中的内容分别为aa bb cc和dd ee ff, 然后再定义一个数组array2,这个数组中的元素为array和array1,最后使用for循环,通过array2数组将array和array1中的元素输出.

希望可以帮到题主, 欢迎追问.




静宁县17230241776: linux shell 脚本 求任意10个数的最大值.(使用数组) -
矣亮羟丙:[答案] #!/bin/bash aa=(23 345 55 56 -3456 4 678 90 9 1133) max=${aa[0]} for((i=1;ido if [ ${aa[$i]} -gt $max ];then max=${aa[$i]};fi done echo $max

静宁县17230241776: linux shell里怎么用数组 -
矣亮羟丙: split(s,a,fs) 以fs为指定分隔符将字符串s分割成一个数组a awk 'BEGIN{print split("aswd|sawa|eee",Ti,"|"),Ti[1]}'

静宁县17230241776: linux shell 使用数组拷贝文件 -
矣亮羟丙: shell没有数组,不过下面的实施方式,不知道对你有帮组不? #!/bin/sh i=0 for filename in `ls` doecho "myfile$i=$filename" >> ./mydatai=`expr $i + 1` doneeval `cat ./mydata`#以下演示 b=0 cat ./mydata | while read line do myarray="myfile$b" eval echo "cp \$$myarray to some dir"b=`expr $b + 1` done rm -f ./mydata另外要判断是否执行成功,可调用$?,然后判断执行就行.

静宁县17230241776: linux shell脚本中,数组名称是一个变量,怎么打印出它里面的元素? -
矣亮羟丙: 题主你好,代码及测试截图如下:下面这个例子可能对题主有帮助:说明: array和array1是两个数组, 其中的内容分别为aa bb cc和dd ee ff, 然后再定义一个数组array2,这个数组中的元素为array和array1,最后使用for循环,通过array2数组将array和array1中的元素输出.希望可以帮到题主, 欢迎追问.

静宁县17230241776: shell 脚本中$$,$#,$?分别代表什么意思? -
矣亮羟丙: 给你个全的,你在Linux环境下多试下就明白了:$0 这个程式的执行名字$n 这个程式的第n个参数值,n=1..9$* 这个程式的所有参数,此选项参数可超过9个.$# 这个程式的参数个数$$ 这个程式的PID(脚本运行的当前进程ID号)$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)$? 执行上一个指令的返回值 (显示最后命令的退出状态.0表示没有错误,其他任何值表明有错误)$- 显示shell使用的当前选项,与set命令功能相同$@ 跟$*类似,但是可以当作数组用

静宁县17230241776: Linux shell 数组array基础和$a的区别 -
矣亮羟丙: Linux Bash中,数组变量的赋值有两种方法:7a686964616fe4b893e5b19e31333363353861(1) name = (value1 ... valuen) // 此时下标从0开始; (2) name[index] = value 下面以一个简单的脚本来说明,脚本内容如下: #!/bin/bash #定义数组 ...

静宁县17230241776: linux脚本,在一个循环中赋值一个数组 -
矣亮羟丙: 数组的赋值操作有问题,改成下面这样:for ubootfile in $uboot_list do FILE=`find . -name $ubootfile -print -quit` if [ -n "$FILE" ]; then a=(${a[@]} $FILE) else b=(${b[@]} $FILE) fi done echo "found files:" echo ${a[@]} echo "missing files:" ...

静宁县17230241776: linux shell 建立一个整形数组 -
矣亮羟丙: 看了楼主zhidao的问题才知道原来bash还可以用数组.于是谷歌了下,发现这篇文内章,http://www.centoscn.com/shell/2013/0331/196.html楼主可以参考一下.使用起来跟C里面差不多容 譬如 static int a[]={1,2,3,4,5}.

静宁县17230241776: linux,shell如何把字符串变成数组? -
矣亮羟丙: echo $url | cut -d , -f 1 cut是切割命令,-d表示分隔符,这里是逗号,-f表示取第几个,这里是第一个 注意和数组不一样,数组是取第0个.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网