Ich habe ein Shell-Skript (. Ksh) innerhalb der ich die BTEQ-Datei zum Ausführen von SQL-Abfrage aufrufen. Das Datum der Ausführung der BTEQ-Datei hängt jedoch von der Datenverfügbarkeit ab, die eine andere SQL-Abfrage im Shell-Skript prüft.Übergabe von Variablen aus Shell-Skript zu BTEQ-Datei
Was ich will: Ich möchte 'Date' Variable aus Shell-Skript in die BTEQ-Datei übergeben, so dass die Abfrage, die ausführt, dieses 'Datum' berücksichtigt.
Shell-Skript und die Variable innerhalb des check_data.ksh
Rundate=`date +"%Y-%m-%d"`
cat ~/.tdlogon_simba sample_TD.btq | bteq >> ${log_file} 2>&1
BTEQ Datei Code (Sample_TD.btq)
sel * from test_table
where cond = Rundate
In dem obigen Code, ich will 'Rundate' von CHECK_DATA kommen .ksh
Was ich nicht wollen: In Wirklichkeit ist meine Abfrage sehr um 3000 Linie von Code, so dass ich die Abfrage nicht ausführen möchte ich nside das Shell-Skript.
EDITED
Was ich will: ich eine Variable RUNDATE (mit DATE-Wert) haben will, und will diese Variable in jedem Ort nutzen. Der Wert von RUNDATE sollte beim Start des Shell-Skripts zugewiesen werden, grundsätzlich sollte es nur einmal gelesen werden und sollte während des Batch-Prozesses gleich bleiben, d. H. Es sollte sich nicht ändern, auch wenn ein neuer Tag gekommen ist, wenn der Prozess läuft.
kann ich die 1 Tag in Shell-Skript lesen
RUNDATE=`date +"%Y-%m-%d" -d "+1 day"`
mit Jetzt run_data_check und run_batch innerhalb des Shell-Skript Ich bin mit zwei Batch-Prozesse, in denen ich werde dieses Datum in die BTQ Datei werden vorbei . Data_check ist ein iterativer Prozess und ich weiß nicht, wann die Daten kommen. Daher möchte ich, dass das Datum festgelegt wird, um nach den Daten für diesen Tag zu suchen.
Wenn ich
verwendenrun_tdcheck
sed "s/RUNDATE/$(date +'%Y-%m-%d' -d '+1 day')/g" ~/.tdlogon_simba test.btq | bteq >> ${log_file} 2>&1
Dann ist es nicht meine Sache helfen, da jedes Mal diese Funktion läuft es das Systemdatum prüfen und entsprechend ändert. Ich möchte, dass RUNDATE repariert wird, bis die Stapelverarbeitung abgeschlossen ist.
Jeder Weg, mit dem ich dieses Problem lösen kann.
Danke, @tripleee. Ich habe meine Frage bearbeitet, um meinen Anwendungsfall deutlicher zu machen. Können Sie mir jetzt raten, wie ich vorgehen soll? –