[FOSSGIS-Talk] GRASS GIS : Mehrere Befehle direkt hintereinander ausführen;

st_kiefer at web.de st_kiefer at web.de
So Jun 11 23:29:56 CEST 2017


Hallo Stefan,

Du kannst ein sog. Shell-Skript anlegen.

In der Konsole kannst Du das tun, indem du einen Editor Deiner Wahl 
benutzt (vi, nano, emacs) und damit die Datei bearbeitest. Die Datei 
muss dazu noch nicht existieren. Du kannst auch einen beliebigen 
graphischen Texteditor benutzen, und dann die Datei in Deinem Workspace 
abspeichern. Benenne die Datei zweckmäßigerweise in der Art: "Dateiname.sh"

Die Endung .sh hilft Dir die Datei als Skript-Datei wieder zu erkennen.

Gib nun in diese Datei Deine Befehle in der Reihenfolge ein, in der sie 
ausgeführt werden sollen. Jeden Befehl in eine neue Zeile.

Wenn Du die Datei gespeichert hast musst Du sie noch als Ausführbar 
kennzeichnen. Dazu gibst Du in der Konsole folgendes ein:

chmod +x dateiname.sh

Nun kannst Du die Datei durch Eingabe von

./Dateiname.sh

ausführen, und Deine Befehle sollten der Reihe nach aufgerufen werden.

Der Punkt und Querstrich (wichtig Slash, nicht Backslash) vor dem 
Dateinamen sind wichtig, sonst würde das Betriebssystem nach einem 
Befehl namens Dateiname.sh suchen, den es wahrscheinlich nicht findet.

Das ist jetzt mal ne Quick und Dirty-Beschreibung. Schau gerne auch mal 
unter dem Stichwort Shell-Skripting im Internet. Es gibt da viel mehr 
Möglichkeiten die Befehlsausführung zu steuern und Informationen zu 
beschaffen und auszuwerten


Am 11.06.2017 um 22:34 schrieb net-ecke at gmx.net:
> Hallo,
>
> eine Anfängerfrage :
>
> Wie kann man in GRASS GIS mehrere Befehle direkt hintereinander 
> ausführen ?
>
> Konkretes Beispiel :
>
> In der Beschreibung zu 
> https://grass.osgeo.org/grass72/manuals/r.sim.water.html
>
> findet sich folgendes Beispiel :
>
> "g.region raster=elevation.10m -p
> r.slope.aspect elevation=elevation.10m dx=elev_dx dy=elev_dy
>
> # synthetic maps
> r.mapcalc "rain    = if(elevation.10m, 5.0, null())"
> r.mapcalc "manning = if(elevation.10m, 0.05, null())"
> r.mapcalc "infilt  = if(elevation.10m, 0.0, null())"
>
> # simulate
> r.sim.water elevation=elevation.10m dx=elev_dx dy=elev_dy rain=rain 
> man=manning infil=infilt nwalkers=5000000 depth=depth"
>
>
> Unter "Console" kann man natürlich die einzelnen Befehle 
> hintereinander eingeben und separat ausführen.
> Gibt es aber auch die Möglichkeit, den ganzen Befehlsblock auf einmal 
> einzugeben und auszuführen ?
> Bei mir funktioniert das in der Console nicht.
>
> Danke und Gruss, Stefan
>
> ---
> Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
> https://www.avast.com/antivirus
>



Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste