Ich habe ein schnelles und schmutziges Skript geschrieben, um einige Berichte von einem Webdienst zeitlich abzustimmen:
BASE_URL='http://example.com/json/webservice/'
FIRST=1
FINAL=10000
for report_code in $(seq 1 $FINAL); do
(time -p response=$(curl --write-out %{http_code} --silent -O ${BASE_URL}/${report_code}) ) 2> ${report_code}.time
echo $response # <------- this is out of scope! How do I fix that?
if [[ $response = '404' ]]; then
echo "Deleting report # ${report_code}!"
rm ${report_code}
else
echo "${report_code} seems to be good!"
fi
done
Ich muss den time
Befehl in eine Subshell einschließen, damit ich seine Ausgabe umleiten kann, aber das macht den Wert von $response
für die übergeordnete Shell nicht verfügbar. Wie komme ich um dieses Problem herum?