0

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/&lt;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

実際、確認すると、「天気」ファイルは作成されていません。ただし、コマンド~/.conkyblue/accu_weather/rss/acc_rssをプロンプトから直接実行すると、期待どおりに機能し、コンテンツを作成して /home/me/weather ファイルに配置します。

私は sed コマンドについて何も知りませんが、この面倒な結果としてそれを学ぼうとしています。

コードの問題は何でしょうか。書き込み先のフォルダーは私のホームフォルダーであり、もちろん私はそれを所有しているため、許可の問題ではないと思います。

ありがとう

4

1 に答える 1

1

egrep によって作成されたはずです。

スクリプトを実行すると、スクリプト プロセスのweather中にディレクトリが作成されます。pwd

egrep がファイルを作成しない理由、またはファイルを作成したディレクトリを確認してください。

于 2013-01-17T23:55:58.833 に答える