有一个shell如下:
#!/bin/bash
declare -a text_lines
line_count=0
IFS=$'n'
cat test.txt |
while read str_line;
do
echo "${str_line}"
text_lines[${line_count}]="${str_line}"
((line_count++))
done
num_lines=${#text_lines[@]}
echo "num_lines=$num_lines"
for (( indx=0 ; indx<=$num_lines ; indx++ ))
do
echo -e "<$indx>t${text_lines[$indx]}"
done
exit 1
test.txt的内容如下:
1. main()
2. {printf("this is first program");
3. }
运行结果如下:
1. main()
2. {printf("this is first program");
3. }
num_lines=0
<0>
可见数组并没有赋值成功,这是怎么回事啊?
shell的数组该怎么赋值?????????????????
-
- 帖子: 1
- 注册时间: 2009-12-16 16:00
-
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
- 联系:
- xzap
- 帖子: 256
- 注册时间: 2006-08-24 21:25
Re: shell的数组该怎么赋值?????????????????
代码: 全选
#!/bin/bash
IFS="
"
text_lines=($(cat test.txt))
num_lines=${#text_lines[@]}
echo "num_lines=$num_lines"
for (( indx=0 ; indx<$num_lines ; indx++ ))
do
echo -e "<$indx> \t${text_lines[$indx]}"
done
exit 1
-
- 帖子: 3
- 注册时间: 2010-02-04 11:02
Re: shell的数组该怎么赋值?????????????????
