Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Fehler in Batch-Skript - bitte um Hilfe :x

  1. #1
    Reichtum, Macht und Ruhm!
    Registriert seit
    Sep 2014
    Beiträge
    160

    Fehler in Batch-Skript - bitte um Hilfe :x

    Hallo Community,

    ja ich schon wieder...

    Ich habe mich mal wieder an ein neues Skript gewagt und hänge jetzt leider fest.

    Es macht was es soll, - nur Falsch =)

    Ich habe eine Suchfunktion geschrieben, mit der ich nach bestimmten Teilen in Text Dateien suche.
    Die Pfadangaben werden dann (wahrscheinlich auf die umständlichste Weiße die es gibt) gekürzt um den reinen Datei-Name und/oder den korrekten Pfad zu erhalten.

    Per kdialog wird mir dann auch alles richtig in Form einer Radioliste angezeigt. Jedoch sind die Bezeichnungen "verrutscht"
    Sprich ich habe eine Auswahl von 1 2 3 4 5
    und wenn ich 5 auswähle, wird komischerweise die 3 eingelesen.

    Hier mal der ganze Teil der nicht funktioniert:

    Code:
    #Suchen nach den Begriffen "In Bearbeitung" und "Offen" im Dokumenten Verzeichnis und kürzen der Treffer auf den Dateiname
    suche=$(egrep -r "In Bearbeitung|Offen" /home/user/Dokumente/ | tr /: // | tr /" " /_  | cut -d/ -f9-9 )
    
    #Übergabe der Treffer, Zeilenweise an die Radiolist
    auswahl1=$(kdialog --radiolist "Treffen Sie eine Auswahl!" $( for i in "$suche"; do printf " %s " "$i" "$i" "$i" ; done ) ) 
    
    #Erneute Suche nach der Datei um den kompletten Pfad zu erhalten
    suche2=$(find /home/user/Dokumente/ -name "$auswahl1")
    
    #Auslesen des Inhaltes der Datei
    inhalt=$(cat "$suche2")
    
    #Ausgabe des Inhalts der kompletten ausgewählten Datei in einer Dialogbox
    kdialog --textinputbox "Test" "$inhalt"
    In der Auswahl stehen also wie gesagt dann mehrere Dateien.
    Aber wenn ich die Datei 3 auswähle, öffnet sich die Datei 2... Als Rückgabewert bekomme ich trotz Auswahl trotzdem den falschen Wert.

    Geprüft habe ich das so:
    Code:
    suche=$(egrep -r "In Bearbeitung|Offen" /home/user/Dokumente/ | tr /: // | tr /" " /_  | cut -d/ -f9-9 )
    
    auswahl1=$(kdialog --radiolist "Treffen Sie eine Auswahl?" $( for i in "$suche"; do printf " %s " "$i" "$i" "$i" ; done ) ) 
    
    echo "$auswahl1"
    Kann mir jemand helfen oder hat jemand von der Problembeschreibung her schon einen Verdacht?

    Vielen lieben Dank schon mal!

    Liebe Grüße,

    iBlack
    Superquadratisch, Galaktisch gut!

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.061
    Oh man, Du lernst es echt nicht... Das wievielte mal spielen wir dieses Spiel schon durch?

    Hast Du Dir schon mal angeschaut, was
    Code:
    for i in "$suche"; do printf " %s " "$i" "$i" "$i" ; done
    ausgibt?

    Und auf basename / dirname haben wir doch auch schon min. 100x verwiesen...
    Abgesehen davon, daß sich Dein 1. Zeile vermutlich durch ein einfaches find-Konstrukt ersetzen lässt.
    Geändert von marce (09.02.17 um 16:54 Uhr)
    Ich bin root - ich darf das.

  3. #3
    Reichtum, Macht und Ruhm!
    Registriert seit
    Sep 2014
    Beiträge
    160
    Hallo marce...
    ja tut mir leid

    und ja, ich habe mir schon anzeigen lassen was
    Code:
    for i in "$suche"; do printf " %s " "$i" "$i" "$i" ; done
    ausgibt.

    Von der Anzeige her ist komischerweise alles richtig, deswegen bin ich ja so verwirrt.

    Trotzdem Danke,

    Grüße,

    iBlack
    Superquadratisch, Galaktisch gut!

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.061
    Hm, meine Tests hier sagen, daß es sicherlich nicht alles richtig ist.

    Pack in Dein $suche mal "1 2 3 4 5 6" rein - es ist ja einfach nur eine Liste von Dateinamen...

    ... und dann überleg nochmals, wie denn kdialog seine Argumente haben will.
    Ich bin root - ich darf das.

  5. #5
    Reichtum, Macht und Ruhm!
    Registriert seit
    Sep 2014
    Beiträge
    160
    @Marce.... DANKE =D

    Ich bin auch echt zu blöd für diese Welt...
    Ich musste das nicht mal testen, weil ich schon weiß was mein Fehler ist...

    Der Aufbau einer Radioliste bezieht sich einmal auf die Bezeichnung, dann den Rückgabewert, das Item selbst und der Status
    Sprich,
    Code:
    kdialog --radiolist ["Bezeichnung des Dialoges"] [Rückgabewert Item1] ["Bezeichnung Item1] [Status Item1] ...
    Das zieht sich dann so weiter... oh man :X ich bin auch echt zu unfähig für alles..

    Vielen lieben Dank dir =)
    Superquadratisch, Galaktisch gut!

Ähnliche Themen

  1. Bitte um Hilfe für Skript-Programmierung!
    Von kleinerjunge im Forum Linux Allgemein
    Antworten: 7
    Letzter Beitrag: 26.02.06, 14:06
  2. [Bitte] Dos-Batch-Skript in Bash-Skript umwandeln
    Von ichunddu im Forum Linux Allgemein
    Antworten: 8
    Letzter Beitrag: 31.07.05, 12:38
  3. K3b Fehler ! Bitte um Hilfe
    Von LiMaD im Forum Anwendungen Allgemein, Software
    Antworten: 6
    Letzter Beitrag: 27.01.05, 08:31
  4. Superkaramba ./confugure Fehler - bitte Hilfe
    Von coolskin im Forum Windowmanager
    Antworten: 10
    Letzter Beitrag: 31.08.04, 15:27
  5. Fehler bitte um hilfe
    Von Doenald im Forum Dedizierte Spiele Server
    Antworten: 4
    Letzter Beitrag: 23.02.04, 11:19

Stichworte

Lesezeichen

Berechtigungen

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