2011-11-14 40 views
0

为什么我没有从这个代码中的每一行中获取数字?
任何人都可以告诉我我做错了什么吗?为什么我没有得到每一行的价值?

#!/bin/bash 

seq=$(which seq) 
a=2290 
b=2300 
gen=$($seq $a $b) 

echo "GENERATING..." 

for nr in "$gen" 
do 
     echo "hello $nr" 
done 

echo "DONE." 

我得到这个:

DOWNLOADING... 
hello 2290 
2291 
2292 
2293 
2294 
2295 
2296 
2297 
2298 
2299 
2300 
DONE. 
+0

你什么输出?你有没有尝试回显中间值? –

+1

不确定(还)尝试使用awk? 'seq 2290 2300 | awk'{print“hello”FS $ 0}'' – matchew

+0

@matchew你的单行工作+1 –

回答

3

变化for nr in "$gen"for nr in $gen

删除引号...它处理的整个序列作为单个项目。

输出以前

GENERATING... 
hello 2290 
2291 
2292 
2293 
2294 
2295 
2296 
2297 
2298 
2299 
2300 
DONE.

输出后:

GENERATING... 
hello 2290 
hello 2291 
hello 2292 
hello 2293 
hello 2294 
hello 2295 
hello 2296 
hello 2297 
hello 2298 
hello 2299 
hello 2300 
DONE.
+1

非常感谢你的工作.. 这是从我这么noobish:S –

+2

根本不是n00bish。我看到有2-3k点的人忘记了最简单的语法。不要打垮自己。 –

相关问题