ubuntuusers.de

Script erstellen

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

t471440

Avatar von t471440

Anmeldungsdatum:
29. Oktober 2015

Beiträge: 66

Hallo,

ich hoffe, ich bin hier richtig?

Ich möchte eine Art Batch-Datei erstellen, die zu bestimmten Zeitpunkten z. B. einen Ordner kopiert.

z. B. so:

1
cp -r ~/OrdnerX ~/Schreibtisch/

Im Terminal funktioniert das auch. Wenn ich aber auf dem Schreibtisch eine ausführbare Datei mit

1
2
#! /bin/bash
cp -r ~/OrdnerX ~/Schreibtisch/

anlege, passiert nichts. Außer der "Ladeuhr".

Was mache ich falsch?

TausB

Avatar von TausB

Anmeldungsdatum:
26. November 2009

Beiträge: 1570

Wohnort: Terra incognita

t471440 schrieb:

Im Terminal funktioniert das auch. Wenn ich aber auf dem Schreibtisch eine ausführbare Datei mit

#! /bin/bash
cp -r ~/OrdnerX ~/Schreibtisch/

anlege, passiert nichts. Außer der "Ladeuhr".

Was mache ich falsch?

Lass mal das Leerzeichen weg.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

t471440 schrieb:

Wenn ich aber auf dem Schreibtisch eine ausführbare Datei mit

1
2
#! /bin/bash
cp -r ~/OrdnerX ~/Schreibtisch/

anlege, passiert nichts. Außer der "Ladeuhr".

Was mache ich falsch?

Hallo,

du müsstest etwas genauer beschreiben, was du machst bzw. was du willst. Wenn du diese Datei auf dem Schreibtisch anlegst, dann passiert erst einmal gar nichts (dann liegt die eben nur auf dem Schreibtisch herum). Die Tatsache, dass du eine "Ladeuhr" siehst, sagt mir, dass du außerdem noch irgendetwas anderes gemacht hast (vielleicht Doppelklick?).

Sollte es so sein, dass du ein Skript mit Doppelklick aufrufen möchtest, dann müsstest du dich mit dem Thema .desktop-Dateien beschäftigen. Um zu prüfen, ob das Skript funktioniert, per Terminal in das Verzeichnis wechseln, in welchem die Skriptdatei liegt, und mit

1
./SKRIPTNAME

aufrufen. Wenn es nicht funktioniert, bekommst du eine Fehlermeldung, die du bitte hier postest.

Da Programme über .desktop-Dateien aufgerufen werden müssen, rate ich davon ab, Skriptdateien direkt auf dem Schreibtisch abzulegen.

Außerdem:

Ich möchte eine Art Batch-Datei erstellen, die zu bestimmten Zeitpunkten z. B. einen Ordner kopiert.

Wenn du möchtest, dass das Skript vollautomatisch (ohne dein Zutun) abläuft, dann wäre Cron für dich ein Thema.

Zusatz: TausB hat ja schon eine Fehlerursache gefunden; abgesehen davon gilt aber das oben geschriebene weiterhin.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14384

TausB schrieb:

Lass mal das Leerzeichen weg.

Das Leerzeichen wird nicht die Ursache sein, denn zwischen der Zeichenkombination "#!" und dem Kommando (hier "/bin/bash") kann auch eines oder mehrere Leerzeichen oder auch ein tab sein und die Shebang(-Zeile) ist trotzdem wirksam.

t471440

(Themenstarter)
Avatar von t471440

Anmeldungsdatum:
29. Oktober 2015

Beiträge: 66

Danke. Aber das bringt leider nichts.

TausB schrieb:

t471440 schrieb:

Im Terminal funktioniert das auch. Wenn ich aber auf dem Schreibtisch eine ausführbare Datei mit

#! /bin/bash
cp -r ~/OrdnerX ~/Schreibtisch/

anlege, passiert nichts. Außer der "Ladeuhr".

Was mache ich falsch?

Lass mal das Leerzeichen weg.

t471440

(Themenstarter)
Avatar von t471440

Anmeldungsdatum:
29. Oktober 2015

Beiträge: 66

Danke für die Antwort. Ich möchte die Datei per Doppelklick vom Desktop aus starten. (Wenn ich sie in den Programmstarter packe, funktioniert sie komischerweise beim Neustart.) Habe jetzt im Homeverzeichnis eine Datei test angelegt:

1
2
!#/bin/bash
mkdir ~/Schreibtisch/test

Wenn ich sie im Terminal aus dem Homeverzeichnis aufrufe mit

1
test

passiert nichts. Rufe ich sie auf mit

1
~/test

funktioniert es plötzlich. Aber warum nicht, wenn ich den Pfad weglasse?

wxpte schrieb:

t471440 schrieb:

Wenn ich aber auf dem Schreibtisch eine ausführbare Datei mit

1
2
#! /bin/bash
cp -r ~/OrdnerX ~/Schreibtisch/

anlege, passiert nichts. Außer der "Ladeuhr".

Was mache ich falsch?

Hallo,

du müsstest etwas genauer beschreiben, was du machst bzw. was du willst. Wenn du diese Datei auf dem Schreibtisch anlegst, dann passiert erst einmal gar nichts (dann liegt die eben nur auf dem Schreibtisch herum). Die Tatsache, dass du eine "Ladeuhr" siehst, sagt mir, dass du außerdem noch irgendetwas anderes gemacht hast (vielleicht Doppelklick?).

Sollte es so sein, dass du ein Skript mit Doppelklick aufrufen möchtest, dann müsstest du dich mit dem Thema .desktop-Dateien beschäftigen. Um zu prüfen, ob das Skript funktioniert, per Terminal in das Verzeichnis wechseln, in welchem die Skriptdatei liegt, und mit

1
./SKRIPTNAME

aufrufen. Wenn es nicht funktioniert, bekommst du eine Fehlermeldung, die du bitte hier postest.

Da Programme über .desktop-Dateien aufgerufen werden müssen, rate ich davon ab, Skriptdateien direkt auf dem Schreibtisch abzulegen.

Außerdem:

Ich möchte eine Art Batch-Datei erstellen, die zu bestimmten Zeitpunkten z. B. einen Ordner kopiert.

Wenn du möchtest, dass das Skript vollautomatisch (ohne dein Zutun) abläuft, dann wäre Cron für dich ein Thema.

Zusatz: TausB hat ja schon eine Fehlerursache gefunden; abgesehen davon gilt aber das oben geschriebene weiterhin.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14384

t471440 schrieb:

Habe jetzt im Homeverzeichnis eine Datei test angelegt:

test ist nicht gut für deine Datei, denn:

:~$ which test
/usr/bin/test

BTW: Mit Schreibtischen und Desktops kenne ich mich nicht aus, aber versuch mal in deinem richtig benannten Script, mit absoluten Pfaden für Alles (d. h. für Kommandos und Verzeichnisse/Unterverzeichnisse, etc.).

t471440

(Themenstarter)
Avatar von t471440

Anmeldungsdatum:
29. Oktober 2015

Beiträge: 66

Vielen Dank. Das Script funktioniert jetzt. Sogar als

1
test

. Habe es aber jetzt

1
testx

genannt. 😉 Nun möchte ich aber eine Verknüpfung zur Datei auf dem Desktop haben. Und das geht leider nicht....

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14384

t471440 schrieb:

Das Script funktioniert jetzt. Sogar als

1
test

Naja, evtl. in deinem home-Verzeichnis. Wie ist auf deinem System, die Ausgabe von:

which test

?

t471440

(Themenstarter)
Avatar von t471440

Anmeldungsdatum:
29. Oktober 2015

Beiträge: 66

Also nochmal zum Problem:

Ich kann das Script (die Datei "testx") aus dem Terminal heraus starten mit

~/testx

Wenn ich sie aber aus der GUI heraus durch Doppelklicken starten will, kommt für ca. 15 s die Ladeuhr. Mehr nicht.

(Die Datei habe ich vorher natürlich ausführbar gemacht.)

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

t471440 schrieb:

Vielen Dank. Das Script funktioniert jetzt. Sogar als

1
test

.

Wie das?

Aber warum nicht, wenn ich den Pfad weglasse?

Weil der Pfad nicht per Default in der Umgebungsvariable hinterlegt ist:

1
2
3
wxtpe@prod-nb:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
wxpte@prod-nb:~$

Wenn ich sie aber aus der GUI heraus durch Doppelklicken starten will, kommt für ca. 15 s die Ladeuhr. Mehr nicht.

Hast du denn inzwischen eine testx.desktop angelegt?

t471440

(Themenstarter)
Avatar von t471440

Anmeldungsdatum:
29. Oktober 2015

Beiträge: 66

Das übersteigt zwar meine Linux- bzw. Unix-Kenntnisse, aber es wird schon stimmen. Also gebe ich sicherheitshalber immer den Pfad mit an. 😉

Trotzdem: Warum funktioniert die Datei nicht, wenn ich sie in der GUI per Doppelklick starte?

Ich habe keine testx.desktop angelegt. Aber über die GUI eine Verknüpfung zur testx. Und diese dann auf den Desktop kopiert. Ist wohl leider nicht dasselbe? :-\

Eine .desktop-Datei habe ich deshalb nicht erstellt, weil ich die ganze Erklärung im Wiki leider nicht verstehe. Das ist alles viel zu kompliziert für Linux-Einsteiger.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

t471440 schrieb:

Eine .desktop-Datei habe ich deshalb nicht erstellt, weil ich die ganze Erklärung im Wiki leider nicht verstehe. Das ist alles viel zu kompliziert für Linux-Einsteiger.

So kompliziert nun auch wieder nicht.

  1. gedit öffnen

  2. Die Zeilen

    [Desktop Entry]
    Name=Skriptstart
    Type=Application
    Exec=/pfad/zur/Datei/testx

    hineinkopieren

  3. Das ganze auf dem Schreibtisch als testx.desktop abspeichern.

Mehr ist da nicht(die restlichen Parameter sind optional und damit erst einmal "Luxus").

Edit: besser mit absolutem Pfad.

t471440

(Themenstarter)
Avatar von t471440

Anmeldungsdatum:
29. Oktober 2015

Beiträge: 66

Danke, das sieht schonmal besser aus. Ich habe auf dem Schreibtisch eine xxx.desktop erstellt:

1
2
3
4
[Desktop Entry]
Name=xxx
Type=Application
Exec=~/testx

Beim Doppelklick kommt allerdings die Meldung: "Beim Starten der Anwendung ist ein Fehler aufgetreten".

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

Nimm bitte den absoluten Pfad, mit der relativen Pfadangabe "~" kommt die .desktop-Datei nicht zurecht. Also:

1
Exec=/home/deinbenutzername/testx
Antworten |