导航:首页 > 创造发明 > linux中如何创造数组

linux中如何创造数组

发布时间:2021-08-08 03:37:01

Ⅰ 在linux中我使用gcc进行编译,定义数组时,如下所示 int a[5] = {10, a[9] =5};

初始化按照初始化表中的值的顺序依次给数组每个元素赋值。因此,a0赋值为10,a[1]赋值为表达式(a[9]=5)的结果。赋值号的返回值为左值的引用,因此先将a[9]赋值为5,然后返回a[9]的引用对a[1]赋值,因此a[1]=a[9]=5。a[2]~a[8]处于未赋值状态。

Ⅱ 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:"
echo ${b[@]}

下面是数组操作的讲解,请参考:
数组作为一种特殊的数据结构在任何一种编程语言中都有它的一席之地,当然bashshell也不例外。本文就shell数组来做一个小的总结。
在这里只讨论一维数组的情况,关于多维数组(事实上,你得用一维数组的方法来模拟),不涉及。这里包括数组的复制,计算,删除,替换。

数组的声明:
1)array[key]=value # array[0]=one,array[1]=two
2)declare -a array # array被当作数组名
3)array=(value1 value2 value3 ... )
4)array=([1]=one [2]=two [3]=three ... )
5)array="one two three" # echo ${array[0|@|*]},把array变量当作数组来处理,但数组元素只有字符串本身
数组的访问:
1)${array[key]} # ${array[1]}
数组的删除
1)unsetarray[1] # 删除数组中第一个元素
2)unset array # 删除整个数组
计算数组的长度:
1)${#array}
2)${#array[0]}#同上。 ${#array[*]} 、${#array[@]}。注意同#{array:0}的区别
数组的提取
从尾部开始提取:
array=( [0]=one [1]=two [2]=three [3]=four )
${array[@]:1} # two three four,除掉第一个元素后所有元素,那么${array[@]:0}表示所有元素
${array[@]:0:2} # one two
${array[@]:1:2} # two three

子串删除
[root@localhostdev]# echo ${array[@]:0}
one two three four
[root@localhostdev]# echo ${array[@]#t*e} # 左边开始最短的匹配:"t*e",这将匹配到"thre"
one two e four
[root@localhostdev]# echo ${array[@]##t*e} # 左边开始最长的匹配,这将匹配到"three"
[root@localhostdev]# array=( [0]=one [1]=two [2]=three [3]=four )
[root@localhostdev]# echo ${array[@] %o} # 从字符串的结尾开始最短的匹配
one tw three four
[root@localhostdev]# echo ${array[@] %%o} # 从字符串的结尾开始最长的匹配
one tw three four
子串替换
[root@localhostdev]# array=( [0]=one [1]=two [2]=three [3]=four )
第一个匹配到的,会被删除
[root@localhostdev]# echo ${array[@] /o/m}
mne twm three fmur

所有匹配到的,都会被删除
[root@localhostdev]# echo ${array[@] //o/m}
mne twm three fmur
没有指定替换子串,则删除匹配到的子符
[root@localhostdev]# echo ${array[@] //o/}
ne tw three fur
替换字符串前端子串
[root@localhostdev]# echo ${array[@] /#o/k}
kne two three four
替换字符串后端子串
[root@localhostdev]# echo ${array[@] /%o/k}
one twk three four

Ⅲ linux shell编程中怎样编历数组

上网络上面搜啊

Ⅳ linux shell 建立一个整形数组

看了楼主的问题才知道原来bash还可以用数组。于是谷歌了下,发现这篇文章,http://www.centoscn.com/shell/2013/0331/196.html楼主可以参考一下。使用起来跟C里面差不多 譬如 static int a[]={1,2,3,4,5}。

Ⅳ 关于Linux数组的使用

192.168.1.1 是字符串,不是数字, 不能++. 当shell看到第一个"."时出错.

你想做什么?

Ⅵ linux C下,怎么定义一个byte数组

windows系统 在windows.h中已经定义,包含(#include "windows.h")就可以了。 linux系统下自已定义: #define BYTE unsigned char

Ⅶ 如何在嵌入式linux系统下用c语言申请一个大于640k的数组

……
对这没研究,不过我记得,数组的处理方式是最缓慢而且最不利系统运行的数据处理方法。超大的数组会导致程序可能存在下标处理溢出或者别的什么问题。

超大数据应该用缓冲吧?自己处理缓冲数据。我想 Linux 下面应该有好用的超大数据存储处理的函数库。
你为啥还要死磕数组呢……计算机编程有一个很重要的课程就是数据算法,就是为了解决这个问题而开设的……

Ⅷ linux,shell如何把字符串变成数组

echo $url | cut -d , -f 1
cut是切割命令,-d表示分隔符,这里是逗号,-f表示取第几个,这里是第一个
注意和数组不一样,数组是取第0个。

Ⅸ 怎样将linux中一系列文件的地址放入数组中

cp text mulu1 mulu2 mulu3 会被 cp 认为是把 text mulu1 mulu2 这三个东西复制到 mulu3 里 用 for 语句: for d in mulu1 mulu2 mulu3 ; do cp -v text $d; done

Ⅹ Linux Shell awk中怎么调用数组和for循环

echo|awk'
{
array[1]=1
array[2]=2
array[3]=3
array[4]=4
array[5]=5

for(i=1;i<=5;++i){
printarray[i]
}
}'

阅读全文

与linux中如何创造数组相关的资料

热点内容
内容无版权今日头条 浏览:327
房产纠纷诉讼时效是多长时间 浏览:269
无形资产年限怎么确定 浏览:542
工商登记人员工作总结2018 浏览:799
我要发明机器人300字 浏览:341
转让合作书 浏览:512
上海联瑞知识产权代理有限公司宁波分公司 浏览:364
西安私人二手挖机转让 浏览:698
债务股权转让 浏览:441
食堂转让合同范本 浏览:335
广西华航投资纠纷 浏览:902
萌分期投诉 浏览:832
金软pdf期限破解 浏览:730
马鞍山学化妆 浏览:41
胶州工商局姜志刚 浏览:786
了解到的发明创造的事例 浏览:391
2012年中国知识产权发展状况 浏览:773
合肥徽之皇知识产权代理有限公司 浏览:636
天津企兴知识产权待遇 浏览:31
二项基本公共卫生服务项目试题 浏览:305