shell中数组怎么循环赋值,急
比如java中的:for(inti=1;i<=100;i++){name[i]=i;}在shell中怎么实现?...
比如java中的:
for(int i=1;i<=100;i++)
{
name[i]=i;
}
在shell中怎么实现? 展开
for(int i=1;i<=100;i++)
{
name[i]=i;
}
在shell中怎么实现? 展开
5个回答
展开全部
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中并输出。
展开全部
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
#!/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后面要有空格
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实差不多
for((i=1;i<=100;i++))
do
name[$i]=$i;
done
shell里需要加 do 和done 限定循环的范围
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试一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i=1;
while(test i -le 100)
do
name[$i]=$i;
i=$[$i+1];
done
while(test i -le 100)
do
name[$i]=$i;
i=$[$i+1];
done
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for((i=0; i<100; i++))
do
name[$i]=$i
done
echo ${name[@]}
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的语法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询