Dolphin eigenes Kontextmenü - Variable in Script bekommen

Hinweis: In dem Thema Dolphin eigenes Kontextmenü - Variable in Script bekommen gibt es 4 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hallo Gemeinde,


    ich möchte nach dieser Anleitung einen eigenen Kontextmenüeintrag im Dolphin erstellen.

    Dieser erscheint dann bei Rechtsklick auf ein Element als Unterpunkt im Kontextmenüeintrag "Aktionen".


    Nun möchte ich nicht, worauf sich die obig verlinkte Anleitung hauptsächlich bezieht, auf den d-bus gehen sondern ein Script aufrufen.

    Geht nach Anleitung so:

    Exec=/bin/sh -c ";<YOUR COMMANDS HERE>"


    Das funktioniert so weit auch einwandfrei, mein Script wird aufgerufen.

    Nur bekomme ich die Variable, worauf ich im Dolphin rechts geklickt habe, nicht in mein Script.


    Im d-bus wird darauf (stets laut der oben verlinkten Anleitung) mit %u oder %U referenziert, aber ich rufe ja ein Script auf.

    Weiß deshalb noch nicht

    - wie und wo ich "%u" in die "Exec"-Zeile in der .desktop-Datei aufnehme und

    - wie ich das dann in meinem aufgerufenen Script referenziere.


    Ich hab jetzt glaube ich alle Iterationen von %u, %U, $0 - $x an allen denkbaren Orten in der aufrufenden Exec-Zeile und meinem Script durch (und das waren nicht wenige), aber funktioniert hat nichts.

    Und alles, was ich im Netz noch dazu finde übersteigt mein Grundwissen, sprich verstehe ich nicht.


    Ist wahrscheinlich gar nicht so schwer...


    ... kann mir jemand auf die Sprünge helfen?


    Meine .desktop-Datei sieht so aus:

    Dell Latitude 7470, 4 x i7 6600U, 32 GB, 1TB NVMe

    Tumbleweed, KDE Plasma

    Für den Inhalt des Beitrages 288647 haftet ausdrücklich der jeweilige Autor: baumkraxler

  • Code
    Exec=/bin/bash -c "sh /home/frank/bin/kde/querlinks/quer_Kunden_Gutachten.sh" $%u

    Hast du es mal so versucht?

    Code
    Exec=/home/frank/bin/kde/querlinks/quer_Kunden_Gutachten.sh "%U"
  • Hallo MustermannE,


    schön, daß sich noch jemand meldet...

    Die verkürzte Version funktioniert grundsätzlich. Aber wie spreche ich "%U" in meinem Script an?

    Ist vielleicht eine Basiswissen-Frage, aber ich finds nicht, und gib mal "Linux Variable %" in ne Suchmaschine ein...


    ~.desktop-Datei funktioniert, Script test.sh wird aufgerufen:

    Bash
    #!/bin/bash
    
    exec > test.txt
    datum=`date`
    
    echo "Datum: "$datum
    echo
    echo "%u: " %u
    
    exit

    Ausgabe sieht so aus:

    Code
    Datum: So 7. Feb 23:37:57 CET 2021
    
    %u:  %u

    Wenig verwunderlich macht es keinen Unterschied ob ich in der ~.desktop - Datei %u, "%u", %U oder "%U" verwende...

    In meinem Script habe ich noch $(%u) versucht (na gut, da mag sich mancher an den Kopf fassen... vielleicht gibt es auch einen Tip, wo ich zu dem Thema nachlesen kann?), das ist wohl ganz falsch... ... - edit: $u / $U etc ist es natürlich auch nicht ...edit -

    Dell Latitude 7470, 4 x i7 6600U, 32 GB, 1TB NVMe

    Tumbleweed, KDE Plasma

    Für den Inhalt des Beitrages 288688 haftet ausdrücklich der jeweilige Autor: baumkraxler

  • Die verkürzte Version funktioniert grundsätzlich. Aber wie spreche ich "%U" in meinem Script an?

    Zum einen: auch die Langform mit der Bash wird sicher funktionieren.

    Anscheinend habe ich dein Problem missverstanden.


    %u wird lt. der von dir genannten Beschreibung als ein Parameter übergeben, %U können danach mehrere Parameter sein.


    Parameter in einem Shell-Script werden als $1 $2 $3 $4 ... übernommen, so auch hier.

    Wenn du hier den Namen eines Verzeichnisses hast, wird der demnach in der Shell-Variablen $1 ankommen.


    Nachtrag:

    https://de.wikibooks.org/wiki/…buch/_Shellprogrammierung


    Hier kann man einiges zum Thema Shellscripte lernen.

    Einmal editiert, zuletzt von MustermannE ()

    Für den Inhalt des Beitrages 288690 haftet ausdrücklich der jeweilige Autor: MustermannE

  • Hallo MustermannE,

    Zitat
    Zum einen: auch die Langform mit der Bash wird sicher funktionieren.

    Das hat es ja auch vorher, mein Script wurde ja aufgerufen. Das ';' in der Zeile


    Exec=/bin/sh -c ";<YOUR COMMANDS HERE>"


    hatte mich irritiert, eigentlich werden damit ja Kommandos voneinander abgetrennt, und es scheint auch ein Fehler zu sein, jedenfalls wird das Script dann nicht ausgeführt. Anyway, jetzt geht's natürlich.

    Es gibt noch eine Frage hinsichtlich Leerzeichen im übergebenen Parameter (hier: imDateipfad), die kommen nur mit wenn ich ' "%u" ' verwende, was klar ist. Wenn ich aber die Langform nehme, kriege ich keine Kombination von ' " ' hin, die mir %u übergibt.

    Ist aber im Moment egal, die Kurzform funktioniert und das Weitere lerne ich im Lauf der Zeit (wird wohl Stichwort Expansion sein) oder muss halt noch mal fragen, wenn es hakt.


    Ausgabe des Scriptes:


    Datum: Mo 8. Feb 11:54:48 CET 2021

    %u: /home/frank/bin/querverlinkung


    Ist ja logisch. Bin zwar sicherlich Anfänger im scripten, aber Parameter habe ich mir doch schon übernommen.

    Bin da irgendwie komplett auf der Leitung gestanden. Hat wohl das "%" meine Windungen blockiert...

    Wusste aber doch, daß es eigentlich ganz einfach sein muss...


    Vielen Dank also, jetzt kann ich endlich ein paar kleine Projekte umsetzen! Dankedankedanke.

    Dell Latitude 7470, 4 x i7 6600U, 32 GB, 1TB NVMe

    Tumbleweed, KDE Plasma

    Einmal editiert, zuletzt von baumkraxler ()

    Für den Inhalt des Beitrages 288697 haftet ausdrücklich der jeweilige Autor: baumkraxler