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 |
Name | Typ | Bedeutung |
---|---|---|
Monitor Stdout | Boolean | Schreibe STDOUT in die datasqill Log. Der stdout log ist in dem Run ersichtlich. |
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]