Moin,
Ich schreibe gerade an einem sh Skript zur bioinformatischen Analyse von klinischen Patientenproben.
Jeder Lauf beinhaltet mehrere Aufträge. Und jeder Auftrag beinhaltet mindestens zwei Proben.
D.h. Ich habe einen Ordner, $LAUF und in diesem Ordner $LAUF befinden sich mindestens zwei Dateien (sogenannte fastq.gz Dateien), bei denen der Anfang des Dateinamens identisch ist (z.B. ABC2019-1-1_R1.fastq.gz und ABC019-1-1_R2.fastq.gz)
Am Anfang meines Skriptes frage ich folgendermaßen ab, welcher Lauf analysiert werden soll. Anschließend prüfe ich mit "if ...then...else" ob dieser Lauf (d.h. ein bestimmter Ordner) existiert:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | read -p "Bitte geben Sie die ID des Laufs ein:" LAUF if [ -e /NAS/Output/$LAUF ] then if [ -e /NAS/Output/$LAUF ] then echo "$LAUF wurde gefunden" fi else echo "$LAUF existiert nicht." read -p "Bitte geben Sie die korrekte ID des Laufs ein:" LAUF if [ -e /NAS/Output/$LAUF ] then echo "$LAUF wurde gefunden" else echo "Fehler!!! Der Lauf $LAUF existiert nicht. Exit..." exit fi fi |
Das klappt soweit gut. In einem zweiten Schritt soll nun eingegeben werden, welcher Auftrag analysiert werden soll. Auch hier möchte ich überprüfen, ob überhaupt Proben mit der angegebenen Auftrags-ID existieren. Also, ob mindestens eine Datei mit $Auftrag_*_fastq.gz unter $LAUF vorhanden ist.
1 | read -p "Bitte geben Sie die ID des Auftrages ein:" AUFTRAG |
if... then...else funktioniert hier leider nicht, da ja in der Regel mindestens zwei Dateien mit der entsprechenden Auftrags-ID vorhanden sind.
Ich hoffe, dass ihr Ideen habt, wie ich diese Abfrage gestalten kann.