Anzeige:
Ergebnis 1 bis 3 von 3

Thema: [Perl] logische Verknüpfungen

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.06.2004
    Beiträge
    21

    [Perl] logische Verknüpfungen

    Hallo nochmal,

    ich habe ein Skript, dass verschiedene Parameter mit Schaltern akzeptiert.
    Zum Beispiel:
    Code:
    ./delItem -u pertze # oder
    ./delItem -g users # oder
    ./delItem -m machine1$
    Man kann also entweder einen User, eine Gruppe oder einen Maschinenaccount löschen. Beim Aufruf soll aber immer nur ein Parameter gesetzt sein. Nun habe ich in der ersten if-Bedingung alle Kombinationen aus den 3 Parametern abgefangen, so dass sich das Skript beendet sobald mehr als ein Paramter gesetzt ist. Meine Frage ist nun, ob man das auch besser, eleganter lösen kann. Denn bei mehr als 3 Parametern wird die if-Bedingung ja ziemlich umfangreich
    Code:
    #!/usr/bin/perl -w
    
    use Getopt::Std;
    
    %OPTION = ();
    getopts("u:g:m:", \%OPTION);
    
    if(($OPTION{u} && $OPTION{g} && $OPTION{m}) || ($OPTION{u} && $OPTION{g}) || ($OPTION{g} && $OPTION{m}) || ($OPTION{u} && $OPTION{m})) {
            exit(1);
    }
    
    if($OPTION{u}){
            system("userdel $OPTION{u}");
    }
    
    if($OPTION{g}){
            system("groupdel $OPTION{g}");
    }
    
    if($OPTION{m}){
            system("userdel $OPTION{u}");
    }
    Danke schonmal und Gruß,
    pertze

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Du könntest zum Beispiel einfach die Anzahl der Keys in %OPTION abfragen - oder auch die Anzahl der Elemente in @ARGV benutzen...

    PHP-Code:
    #wenn mehr als 1 Parameter angegeben wurde:
    if(keys(%OPTION) > 1)
    {
      print 
    STDERR "zuviele Parameter...\n";
      exit(
    1);


  3. #3
    Registrierter Benutzer
    Registriert seit
    11.06.2004
    Beiträge
    21
    Oh danke, manchmal seh ich den Wald vor lauter Bäumen nicht...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •