我试图获取登录脚本来显示度数符号,但它没有显示它。
Here is the weather.sh
METRIC="1" # 0 for F, 1 for C
# Fill in form to find your weather code here:
# http://netweather.accuweather.com/signup-page2.asp
# If code has a space remove it or replace it with %20 or a dash; -
LOCCOD="struer" #Example: NAM|MX|MX009|MEXICO-CITY
if [ "$weather" != "0" ] ; then
weather=`curl -s http://rss.accuweather.com/rss/liveweather_rss.asp\?metric\=${METRIC}\&locCode\=$LOCCOD \
| grep -E '<description>(Currently|High)' \
| sed -e 's/.*<description>\(.*\)/\1/' -e 's/\(.*\) <.*/\1/' -e 's/\(&#176;\)//'`
if [ "`echo "$weather" | wc -l`" -eq "3" ] ; then
echo "Weather......: `echo "$weather" | head -1`"
echo "Today........: `echo "$weather" | head -2 | tail -1`"
echo "Tomorrow.....: `echo "$weather" | tail -1`"
fi
fi
但当我登录时它只显示:°C
但如果我这样做:echo $'\xc2\xb0'C
在腻子中,它显示正常吗?
发生了什么事?我该如何解决?
答案1
这条评论是对的。
°
是 shell 无法识别或解释的 HTML 语句。您需要将其替换为您在示例中显示的可行序列echo
。
至少有两种方法:
具体方法:用
sed
已有的字符串替换此特定字符串。添加此脚本:-e 's/°/°/'
一般方法:使用以下方法扩展许多可能的 HTML 主义
recode
:curl … | grep … | sed … | recode html
一般来说,您可能希望
recode html
在之后使用curl
。