typo
24-08-2009, 16:51
Hallo,
ich habe hier ein Shell Script bei dem ich die Konditionen des Case-Tests dynamisch generieren möchte.
opt="6|7|8"; case "6" in $opt) echo yes;; esac #funktioniert nicht
opt="6|7|8"; case "6|7|8" in $opt) echo yes;; esac # yes
opt="6|7|8"; eval "case "6" in $opt) echo yes;; esac" # yes
Die dritte Variante erzeugt das Ergebnis, das ich möchte. Wenn ich den Test aber erweitern würde, wäre die Nutzung von eval schnell sehr kompliziert. Deshalb möchte ich das vermeiden. Welche Möglichkeiten gibt es? Kann man eval evtl. nur auf $opt anwenden?
Danke im voraus und Gruss,
typo
ich habe hier ein Shell Script bei dem ich die Konditionen des Case-Tests dynamisch generieren möchte.
opt="6|7|8"; case "6" in $opt) echo yes;; esac #funktioniert nicht
opt="6|7|8"; case "6|7|8" in $opt) echo yes;; esac # yes
opt="6|7|8"; eval "case "6" in $opt) echo yes;; esac" # yes
Die dritte Variante erzeugt das Ergebnis, das ich möchte. Wenn ich den Test aber erweitern würde, wäre die Nutzung von eval schnell sehr kompliziert. Deshalb möchte ich das vermeiden. Welche Möglichkeiten gibt es? Kann man eval evtl. nur auf $opt anwenden?
Danke im voraus und Gruss,
typo