2012-07-21 63 views
0

我的bash脚本是:无输出使用bash脚本中的awk时

output=$(curl -s http://www.espncricinfo.com/england-v-south-africa-2012/engine/current/match/534225.html | sed -nr 's/.*<title>(.*?)<\/title>.*/\1/p') 

score=echo"$output" | awk '{print $1}' 
echo $score 

上述脚本版画只是在我的控制台newline,而我所需的输出是

$ curl -s http://www.espncricinfo.com/england-v-south-africa-2012/engine/current/match/534225.html | sed -nr 's/.*<title>(.* 
?)<\/title>.*/\1/p' | awk '{print $1}' 

SA 

那么,为什么我没有得到我的bash脚本的输出,但它在终端正常工作,我用错误的方式使用echo"$output"

回答

2
#!/bin/bash 

output=$(curl -s http://www.espncricinfo.com/england-v-south-africa-2012/engine/current/match/534225.html | sed -nr 's/.*<title>(.*?)<\/title>.*/\1/p') 
score=$(echo "$output" | awk '{ print $1 }') 

echo "$score" 

得分变量可能是空的,因为您的语法错了。

+2

语法并不是普遍错误,它只是将'$ score'设置为'echo $ output',并将赋值的输出(不是)赋给awk' ;-) – 2012-07-21 08:34:51