我从一个从accuweather获取天气信息的脚本中提取了以下内容:
wget -O ./weather_raw $address
if [[ -s ./weather_raw ]]; then
egrep 'Currently|Forecast</title>|_31x31.gif' ./weather_raw > ./weather
sed -i '/AccuWeather|Currently in/d' ./weather
sed -i -e 's/^[ t]*//g' -e 's/<title>|</title>|<description>|</description>//g' ./weather
sed -i -e 's/<img src="/n/g' ./weather
sed -i '/^$/d' ./weather
sed -i -e 's/_31x31.*$//g' -e 's/^.*/icons///g' ./weather
sed -i -e '1s/.$//' -e '3s/.$//' -e '6s/.$//' ./weather
for (( i=2; i<=8; i+=3 ))
do
im=$(sed -n ${i}p ./weather)
sed -i $i"s/^.*$/$(test_image $im)/" ./weather
done
fi
触发上述代码的命令位于conkyrc文件及其~/.conkyblue/accu_weather/rss/acc_rss
中。当我从提示符运行conkyrc脚本时,我得到一个错误
sed: can't read /home/me/weather: No such file or directory
当我检查时,确实没有创建"weather"文件。但是,如果直接从提示符中运行命令~/.conkyblue/accu_weather/rss/acc_rss
,它会像预期的那样工作,并创建并将内容放入/home/me/weather文件中。
我不知道任何关于sed命令,尽管我试图学习它作为这个麻烦的结果。
代码可能有什么问题。我不认为这是权限问题,因为它写入的文件夹是我的主文件夹,我当然拥有它。
谢谢
应该是由egrep创建的
运行脚本时,将在脚本进程的pwd
目录下创建weather
目录。
检查为什么egrep不创建文件,或者它在哪个目录中创建了该文件。