Bash-Skript per Makro starten

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
jkl
***
Beiträge: 56
Registriert: Fr, 27.02.2004 23:43

Bash-Skript per Makro starten

Beitrag von jkl »

Hallo,

ich habe folgendes Problem: Ich möchte unter Linux per Makro ein Skript starten. Für Perl habe ich ja gelesen wie es geht, aber wie ist der Aufruf der Bash unter Linux. Habe bereits einiges ausprobiert, geht aber irgendwie nicht. Wahrscheinlich für einen alten Linux-Hasen eine Leichtigkeit, aber ich komm grad nicht weiter.

Danke!

J. Kleis
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Beitrag von komma4 »

In der Online-Hilfe, Runtime-Funktionen, findest Du den shell() Befehl....


Grüsse vom Pool ;-)
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
jkl
***
Beiträge: 56
Registriert: Fr, 27.02.2004 23:43

Beitrag von jkl »

Sorry, aber wie ich offenslichtlich nicht deutlich genug herausgearbeitet habe :?, habe ich kein Problem mit dem Shell-Befehl (vermute ich jedenfalls), sondern damit, dass der Aufruf Shell("/home/skript.sh",1) z.B. nicht funktioniert. Ich vermute weil ich das skript mit dem "Programm" aufrufen muss. Ich habe bereits Shell("sh /home/skript.sh",1) versucht, aber es passiert einfach nichts.

Danke dennoch

J. Kleis
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

habe ich kein Problem mit dem Shell-Befehl (vermute ich jedenfalls), sondern damit, dass der Aufruf Shell("/home/skript.sh",1) z.B. nicht funktioniert
Du hast kein Problem mit dem Shell-Befehl obwohl genau Dieser nicht funktioniert ... verstehe ich eher nicht

Mein Problem ist hingegen das ich mich mit Linux nicht auskenne und somit nur vermuten kann das ein ShellScript i.d.S. keine Anwendung (=Programm) ist. Falls ja, kann SHELL nicht funktionieren, weil das nur Programme startet.
Versuche stattdessen:

Code: Alles auswählen

Sub script_starten 
Dim starten as object 
starten = createUnoService("com.sun.star.system.SystemShellExecute") 
starten.execute(ConvertToUrl("/home/skript.sh"), "", 0) 
End Sub


Gruß
Stephan
Benutzeravatar
jkl
***
Beiträge: 56
Registriert: Fr, 27.02.2004 23:43

Beitrag von jkl »

Da ich genau deiner Meinung bin (Skript ist kein Programm), hab' ich eben kein Problem mit dem Shell-Befehl. Aber ist ja auch egal... Jedenfalls geht auch deine Variante nicht. Wenn also ein Linuxer weiß, wie das Programm für Skripte heißt, dann bitte kurz antworten...

Danke

J. Kleis
Karolus
********
Beiträge: 7524
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo

Evtl. läuft es mit der Syntax:

Code: Alles auswählen

...
Shell("file:///home/skript.sh",1)
...
du hast skript.sh aber nicht als script.sh benannt ?

Gruß Karo
Benutzeravatar
jkl
***
Beiträge: 56
Registriert: Fr, 27.02.2004 23:43

Beitrag von jkl »

Danke für den Tipp. Funktioniert leider auch nicht. Weiß denn niemand, welches "Programm" das Skript ausführt? :?:

J. Kleis
Karolus
********
Beiträge: 7524
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo

Ich hab hier mal getestet, ein 'test.sh' Script erstellt in '/home' gespeichert, ausführbar gemacht ( 'chmod a+x ./test.sh' auf der Kommandozeile ! )

Danach lief es aus OOo-basic mit Stephans Code:

Code: Alles auswählen

Sub script_starten
Dim starten as object
starten = createUnoService("com.sun.star.system.SystemShellExecute")
starten.execute(ConvertToUrl("/home/test.sh"), "", 0)
End Sub

Mit einem einfachen 'shell(.....)' wie von mir vorgeschlagen funktioniert es nicht,
(Fehlermeldung : Datei nicht gefunden)

Woraus besteht denn der Inhalt des Skripts, evtl kannst du diesen Inhalt direkt im Makro übernehmen ??

Gruß Karo
Benutzeravatar
jkl
***
Beiträge: 56
Registriert: Fr, 27.02.2004 23:43

Beitrag von jkl »

Also ich habe jetzt noch einmal den obigen Code versucht. Beim ersten Start hat es zu einer Nachfrage geführt, ob ich das Skript wirklich starten möchte. Danach ist der Konqueror abgestürtz. Das tut es jetzt immer direkt.

Das Skript soll übrigens lediglich einige Dateien umbenennen. Aber ich möchte in Zukunft noch andere Skripte starten können, so dass ich eigentlich schon ein Skript starten möchte...

Danke dennoch

J. Kleis
Rudi.RG
Beiträge: 1
Registriert: Mi, 01.08.2007 13:48

Re: Bash-Skript per Makro starten

Beitrag von Rudi.RG »

Hallo,
so etwas habe ich auch gesucht, und es funktioniert prächtig.
Aber, wo hast Du diesen Befehl her?

Im Programmierhandbuch habe ich lediglich Folgendes gefunden:
-------
Shell
External programs can be started using the Shell function.

Shell(Pathname, Windowstyle, Param)

Pathname defines the path of the program to be executed.
Windowstyle defines the window in which the program is started. The following values are possible:
0 - The program receives the focus and is started in a concealed window.
1 - The program receives the focus and is started in a normal-sized window.
2 - The program receives the focus and is started in a minimized window.
3 - The program receives the focus and is started in a maximized window.
4 - The program is started in a normal-sized window, without receiving the focus.
6 - The program is started in a minimized window, the focus remains in the current window.
10 - The program is started in full screen mode.

The third parameter, Param, permits command line parameters to be transferred to
the program to be started.
---------------

Damit wird das Skript zwar auch gestartet, aber das Terminalfenster nicht angezeigt, ganz egal, welchen Wert man für "Windowstyle" eingibt.

Viele Grüße
Rudi
Antworten