[gelöst] Skript wird per Klick nicht erfolgreich ausgeführt

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
AA
Beiträge: 294
Registriert: 16.02.2007 10:39:37

[gelöst] Skript wird per Klick nicht erfolgreich ausgeführt

Beitrag von AA » 13.10.2020 21:53:55

Hallo zusammen,

hab meiner Freundin ein Skript geschrieben, das eine Bewerbung aus verschiedenen pdf-Dateien zusammenstellen soll. Klappt leider nur im Terminal, nicht mit Nautilus.

Code: Alles auswählen

#!/bin/bash

# Fügt einzelne pdf-Dateien zu einer zusammen.

PDF1=$(dirname $0)/Anschreiben.pdf
PDF2=$(dirname $0)/Lebenslauf.pdf
PDF3=$(dirname $0)/Zeugnisse.pdf
PDF=$(dirname $0)/Bewerbung\ Freundin\ Meine.pdf

pdftk "${PDF1}" "${PDF2}" "${PDF3}" cat output "${PDF}"

exit 0
Was läuft hier schief? Wird das Skript nicht aus dem Ordner ausgeführt bzw. werden die Pfade nicht gefunden?
Zuletzt geändert von AA am 19.10.2020 18:02:55, insgesamt 2-mal geändert.
Gruß Andre

Benutzeravatar
MSfree
Beiträge: 10774
Registriert: 25.09.2007 19:59:30

Re: Skript wird per Klick nicht erfolgreich ausgeführt

Beitrag von MSfree » 14.10.2020 08:17:42

AA hat geschrieben: ↑ zum Beitrag ↑
13.10.2020 21:53:55
Was läuft hier schief?
$(dirname $0) liefert nicht, was du erwartest :wink:

AA
Beiträge: 294
Registriert: 16.02.2007 10:39:37

Re: Skript wird per Klick nicht erfolgreich ausgeführt

Beitrag von AA » 14.10.2020 09:07:29

Jetzt nur per GUI? Im Terminal schon.
Gruß Andre

Benutzeravatar
MSfree
Beiträge: 10774
Registriert: 25.09.2007 19:59:30

Re: Skript wird per Klick nicht erfolgreich ausgeführt

Beitrag von MSfree » 14.10.2020 09:25:55

AA hat geschrieben: ↑ zum Beitrag ↑
14.10.2020 09:07:29
Jetzt nur per GUI? Im Terminal schon.
Nein, auch im Terminal kommt da nicht, was du erwartest :wink:

Stecke mal folgende Zeile in dein Skript:

Code: Alles auswählen

echo $(dirname $0) >> $HOME/debug.txt
führe das Skript vom Terminal und aus dem Dateimanager aus und schaue die hinterher die Datei debug.txt in deinem Benutzerverzeichnis an.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: Skript wird per Klick nicht erfolgreich ausgeführt

Beitrag von tobo » 14.10.2020 10:58:43

AA hat geschrieben: ↑ zum Beitrag ↑
13.10.2020 21:53:55
Was läuft hier schief?
Dirname liefert dir einen relativen Pfad zurück, der in Abhängigkeit zum Skriptaufruf (wegen dem $0) steht. Es macht also einen Unterschied, ob du das Skript z.B. durch ./script.sh aufrufst, weil du zufälligerweise gerade im Skriptverzeichnis stehst, oder per /home/USER/DIR/script.sh startest. Selbst auf der Shell ist das also nicht konstant, ein Dateimanager bringt da möglicherweise nochmal zusätzlich ein eigenes Arbeitsverzeichnis mit!?

Ich würde in etwa sowas mit absoluten Pfaden probieren:

Code: Alles auswählen

#!/bin/bash

DIR="$(cd "$(dirname "$0")" && pwd)"

# Fügt einzelne pdf-Dateien zu einer zusammen.
PDF1="${DIR}/Anschreiben.pdf"
PDF2="${DIR}/Lebenslauf.pdf"
PDF3="${DIR}/Zeugnisse.pdf"
PDF="${DIR}/Bewerbung Freundin Meine.pdf"  ##Leerzeichen sind keine sonderlich gute Idee

pdftk "${PDF1}" "${PDF2}" "${PDF3}" cat output "${PDF}"

exit 0

gusi
Beiträge: 26
Registriert: 14.10.2020 08:56:58

Re: Skript wird per Klick nicht erfolgreich ausgeführt

Beitrag von gusi » 14.10.2020 12:24:06

das dürfte das gleiche Problem sein , wie bei meinem Threat
viewtopic.php?f=34&t=178941

ich habe den scriptfiles (sh) die ausführung "bash" zugeordnet
so das bei einem doppelklick laufen müsste:
bash ..scriptfile

Das läuft auch an, aber nur mit der sh-referenz und nicht bash
beim ausruf im terninal funkt alles korrekt.
d.h. wenn du einen Louncher machst, und rufst die bash ,, dein script auf
zeigen die bei Spezial-befehlen ein anderes Verhalten,
mit haken bei terminal oder ohne
den seit Jahren in Bash bei "read" eingeführten parameter -t
kennt z,B. eine "doppelklick" bash gar nicht

Ich kenne mich da aber zu wenig aus, es kann ja sein, das x11
eine eigene Zuordnung der befehls-systax zu "bash" macht.
..und da gibts eben unterschiede zur shell-bash
..nur vermutung , ich erwarte ja auch die antwort von nem
Spezuialisten

Benutzeravatar
Tintom
Moderator
Beiträge: 3033
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Skript wird per Klick nicht erfolgreich ausgeführt

Beitrag von Tintom » 14.10.2020 13:25:37

gusi hat geschrieben: ↑ zum Beitrag ↑
14.10.2020 12:24:06
das dürfte das gleiche Problem sein , wie bei meinem Threat
viewtopic.php?f=34&t=178941
Nein, ist es leider nicht.

AA
Beiträge: 294
Registriert: 16.02.2007 10:39:37

[Gelöst] Re: Skript wird per Klick nicht erfolgreich ausgeführt

Beitrag von AA » 14.10.2020 18:12:50

tobo hat geschrieben: ↑ zum Beitrag ↑
14.10.2020 10:58:43
AA hat geschrieben: ↑ zum Beitrag ↑
13.10.2020 21:53:55
Was läuft hier schief?
Dirname liefert dir einen relativen Pfad zurück, der in Abhängigkeit zum Skriptaufruf (wegen dem $0) steht. Es macht also einen Unterschied, ob du das Skript z.B. durch ./script.sh aufrufst, weil du zufälligerweise gerade im Skriptverzeichnis stehst, oder per /home/USER/DIR/script.sh startest. Selbst auf der Shell ist das also nicht konstant, ein Dateimanager bringt da möglicherweise nochmal zusätzlich ein eigenes Arbeitsverzeichnis mit!?

Ich würde in etwa sowas mit absoluten Pfaden probieren:

Code: Alles auswählen

#!/bin/bash

DIR="$(cd "$(dirname "$0")" && pwd)"

# Fügt einzelne pdf-Dateien zu einer zusammen.
PDF1="${DIR}/Anschreiben.pdf"
PDF2="${DIR}/Lebenslauf.pdf"
PDF3="${DIR}/Zeugnisse.pdf"
PDF="${DIR}/Bewerbung Freundin Meine.pdf"  ##Leerzeichen sind keine sonderlich gute Idee

pdftk "${PDF1}" "${PDF2}" "${PDF3}" cat output "${PDF}"

exit 0
Das funktioniert! Vielen Dank dir und allen anderen!
Gruß Andre

Antworten