• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[ gelöst ] SCRIPT - Fehler

A

Anonymous

Gast
Hallo,

ich haben folgendes Problem mit einem SHELL-SCRIPT.

Folgendes Script klappt
a.) über die Konsole (mustermann@mustermann:~/z_shell_scripte> ./get_map_for_local_copy.sh )
b.) als Desktopverknüpfung (Befehl: ~/z_shell_scripte/get_map_for_local_copy.sh )

Script
Code:
#!/bin/sh

BASE_URL="http://www.xyz.de/mapbender/php/mod_wmc2ol.php?wmc_id=5001"
ID="$1"
LOCAL_COPY="karte_$ID.htm"

# Original HTML_Datei herunterladen
wget -O "$LOCAL_COPY" "${BASE_URL}${ID}"

# Anpassungen vornehmen
cat "$LOCAL_COPY" | sed "s/#map{width:722px\;height:535px/#map{width:922px\;height:735px/" > "$LOCAL_COPY.1"
cat "$LOCAL_COPY.1" | sed "s/src='../src='http:\/\/www\.xyz\.de\/mapbender/" > "$LOCAL_COPY.2"

# Aufräumen
mv "$LOCAL_COPY.2" "$LOCAL_COPY"
rm "$LOCAL_COPY.1"

echo "Fertig: lokale Kopie mit Anpassungen in Datei $LOCAL_COPY."

Es wird ein WMC-Dokument ( id=5001 ) vom Server geladen und als karte.htm abgespeichert.

Da ich aber mehrere WMC-Dokumente herunterladen möchte, habe ich ein zweites Sricpt und eine txt-Datei angelegt.
In der Text-Datei stehen nur die heruntzerzuladenden ID-Nummern.

Script
Code:
#!/bin/bash

FILE="$1"

cat "$FILE" | while read line; do
     ~z_shell_scripte/get_map_for_local_copy.sh "$line"
done

TXT - Datei
Code:
4612
4613
4614
4615
4616

Über die Konsole hole ich mir mit dem Befehl:

Code:
mustermann@mustermann:~/z_shell_scripte> ./multi_get_map_for_local_copy.sh ID.txt

die ID's 4612 - 4616 als entsprechende Htm-Datei. Auch das klappt einwandfrei.

Wenn ich aber diesen Befehl als Desktopverknüpfung anlege (Befehl: ~/z_shell_scripte/multi_get_map_for_local_copy.sh ID.txt ) passiert NICHTS.

Wo liegt hier der FEHLER ?
 

framp

Moderator
Teammitglied
Füge mal
Code:
#!/bin/bash -vx

exec >> multi.log 2>&1
am Anfang von Deinem Multi Script ein und sieh Dir an was in multi.log steht.
 
OP
A

Anonymous

Gast
Hannes_1 schrieb:
Wenn ich aber diesen Befehl als Desktopverknüpfung anlege (Befehl: ~/z_shell_scripte/multi_get_map_for_local_copy.sh ID.txt ) passiert NICHTS.
Wo liegt hier der FEHLER ?
Wenn ich mir das anschaue, Hilfe hast du überhaupt noch einen Überblick wer hier wo was hinschreiben soll, und ob er das überhaupt darf.
Deine temporären Dateien sind ohne Path angegeben. Wahrscheinlich startest du als Mustermann ein Script des users "z_shell_scripte" und so weiter. Da musst du erst mal selbst nachforschen was da genau passiert.
Gib mal in deinen Scripte mit echo ein paar Ausgaben aus wie die Variablen belegt werden, wohin die Dateien geschrieben werden und wo sich gesucht werden usw. Wahrscheinlich findest du so den Fehler selbst.

Für uns ist das ansonsten nur Rätselraterei, da wir das so nicht nachstellen können.

robi
 
OP
A

Anonymous

Gast
Hallo,

erst mal vielen Dank für die Antworten.
Habe den Fehler jetzt selbst gefunden.

Code:
#!/bin/sh
BASE_URL="http://www.xyz.de/mapbender/php/mod_wmc2ol.php?wmc_id=5001"
ID="$1"
LOCAL_COPY="karte_$ID.htm"

Hier hat das Script versucht die ID 4612, 4613 ... herunterzuladen. Klappte aber nicht, da oben im Script noch die id=5001 stand.
Gab in der Konsole folgende Fehlermeldung : id_50014612.
Habe das Script wie folgt geändert:

Code:
#!/bin/sh
BASE_URL="http://www.xyz.de/mapbender/php/mod_wmc2ol.php?wmc_id="
ID="$1"
LOCAL_COPY="karte_$ID.htm"

Und schon klappts!
 
Oben