Run Unix Shell

Das Modul startet ein Unix Shell Commando, wartet auf das Ergebnis der Ausführung und schreibt bei Bedarf das STDOUT ins datasqill Log. Falls bei der Ausführung des Commandos ein Fehler Auftritt, dann läuft das Modul auf Fehler und zeigt das Ergebnis aus dem STDERR. Die STDOUT und STDERR können in dem Run nachgesehen werden. Das Commando wird mit dem datasqill Unix User gestartet.

Das Modul kann zum Ausführen von Shell Commandos als auch für Steuerung von externen Tools verwendet werden. Das Modul unterstützt Apache freemarker Logik und kann auch datasqill Variablen in der Action Body verwenden.

Name Bedeutung
Modul Run Unix Shell
Modulklasse DsModRunShell
Typ Java
Zweck Unix Commandos ausführen
Transformationscode Shell Commando(s)
Quellen keine zwindeng notwendig
Ziele keine zwindeng notwendig

Attribute

Name Typ Bedeutung
Monitor Stdout Boolean Schreibe STDOUT in die datasqill Log. Der stdout log ist in dem Run ersichtlich.

Beispiele

Die Beispiele zeigen den Code der Action Body.

Einfache Shell Commandos starten

sleep 5
echo "I am awake"

Shell Commandos mit Verwendung von freemarker direkt in der Action Body.

sleep 5
echo "I am awake at ${.now?string.iso}"

Shell Script starten.

~/my_script.sh ${batch_instance_id}

Starten eines externen Python-Scripts parametrisiert mit dem Datum

python3 script.py '${schedule_date?string[0..9]}'

Shell Commandos bei der Verwendung von freemarker den Interpreter ausschalten.

# Der Interpreter ist an. Somit ersetzt freemarker die Variable
# Ist die Variable im freemarker nicht gesetzt, meldet freemarker einen Fehler
echo ${free_marker_variable}

[#noparse]
# Der Interpreter ist aus. Somit ersetzt freemarker nichts mehr
echo ${bash_variable}

[/#noparse]
# Der Interpreter ist an. Somit ersetzt freemarker die Variable
# Ist die Variable free_marker_variable_2 im freemarker nicht gesetzt, dann wird der text "ansonsten" genommen
echo ${free_marker_variable_2!ansonsten}
# Ist die Variable free_marker_variable_3 im freemarker nicht gesetzt, dann ist der Text leer
echo ${free_marker_variable_3!}

# Gibt die Konkatination von einer freemarker und einer Bash Variablen aus
echo ${free_marker_variable}[#noparse]${bash_variable}[/#noparse]