shell中数组怎么循环赋值,急

比如java中的:for(inti=1;i<=100;i++){name[i]=i;}在shell中怎么实现?... 比如java中的:
for(int i=1;i<=100;i++)
{
name[i]=i;
}
在shell中怎么实现?
展开
 我来答
地表最帅175
高粉答主

2018-03-30 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:152
采纳率:0%
帮助的人:4.3万
展开全部

Bash环境可以这样。

#!/bin/bash

for ((i=1;i<=100;i++))

do

name[$i]=$i

echo ${name[$i]} #为方便检查,加了打印

done

通用点的(符合POSIX标准)可以这样:

#!/bin/sh

declare -a name

for i in `seq 100`

do

name[$i]=$i

echo ${name[$i]} #为方便检查,加了打印

done

bash手册 arrays章节第一段话的某一句:

数组的大小没有上限,也没有限制在连续对成员引用和赋值时有什么要求。数组以整数为下标,从 0 开始。

使用cat的话可以这样:

cat 123.txt | while read line

do

echo "$line"

done

123.txt的每行读取到变量line中并输出。

百度网友5311d79
推荐于2017-11-25 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3198万
展开全部
Bash环境可以这样。
#!/bin/bash
for ((i=1;i<=100;i++))
do
name[$i]=$i
echo ${name[$i]} #为方便检查,加了打印
done

通用点的(符合POSIX标准)可以这样:
#!/bin/sh
declare -a name
for i in `seq 100`
do
name[$i]=$i
echo ${name[$i]} #为方便检查,加了打印
done
更多追问追答
追问
都会报错
追答
同样是Ubuntu 10.10,不会报错。
书写时请注意空格,关键词for后面要有空格
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友33b7770
2012-12-26 · TA获得超过277个赞
知道答主
回答量:93
采纳率:0%
帮助的人:76万
展开全部
其实差不多
for((i=1;i<=100;i++))
do
name[$i]=$i;
done
shell里需要加 do 和done 限定循环的范围
更多追问追答
追问
#!/bin/sh
for((i=1;i<=100;i++))
do
name[$i]=$i
done
echo ${name[@]}
Syntax error:Bad for loop variable
难道是我系统问题,ubuntu10.10
追答
应该是你系统的问题,我这边的都是红帽的系统,但是原理上都差不多啊,你换成bash试一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fd_keh
2012-12-27
知道答主
回答量:4
采纳率:0%
帮助的人:2.6万
展开全部
i=1;
while(test i -le 100)
do
name[$i]=$i;
i=$[$i+1];

done
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hhflying
2012-12-26 · TA获得超过127个赞
知道答主
回答量:48
采纳率:0%
帮助的人:79.1万
展开全部
for((i=0; i<100; i++))
do
name[$i]=$i
done
echo ${name[@]}
追问
#!/bin/sh
for((i=1;i<=100;i++))
do
name[$i]=$i
done
echo ${name[@]}
Syntax error:Bad for loop variable
难道是我系统问题,ubuntu10.10
追答
#!/bin/sh

改成
#!/bin/bash

试试看
估计是你的shell不是bash,我写的这个是bash的语法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式