Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • »Marcopolox13« ist der Autor dieses Themas

Beiträge: 10

Registrierungsdatum: 26.10.2012

Architektur: 64-Bit PC

Desktop: Unity

  • Nachricht senden

1

13.11.2012, 18:56

Wie Terminal Befehl über Fremdprogramm ausführen

Hallo,

Ich möchte gerne einen Konsolenbefehl aus einer anderen anwendung ausführen.

Ich habe bereits geschafft, dass die andere anwendung eine Konsole startet, doch das Parameter (den Terminal befehl, den ich die konsole gerne ausführen lassen würde) wird eben nicht ausgeführt, meine frage also ist, wie schaffe ich es, das die Terminal die Parameter als konsolen befhfel ausführt?

Gruß Marco

2

13.11.2012, 19:16

Hi,
versuch es mal mit

Quellcode

1
Name des Teminals && Befehl

Falls noch nicht probiert.
Müsste eigentlich gehen.
Gruß DH
Wenn Unrecht zu Recht wird, wird Widerstand zur Pflicht.

  • »Marcopolox13« ist der Autor dieses Themas

Beiträge: 10

Registrierungsdatum: 26.10.2012

Architektur: 64-Bit PC

Desktop: Unity

  • Nachricht senden

3

13.11.2012, 20:09

Ne, hatte es so noch nict probird, danke für den Tip, hat aber leider (fals ich es richtig umgesetzt hab) nicht geklappt.

Hab es so jetzt umgesetzt, was leider nicht funktioniert hat:

Starte Applikation
/usr/bin/gnome-terminal
Parameter
marco@marco-ubuntu: /usr/bin && widge update...

4

13.11.2012, 20:20

Hi, wenn dann so:

Quellcode

1
/usr/bin/gnome-terminal &&  widge update...					

Gruß DH
Wenn Unrecht zu Recht wird, wird Widerstand zur Pflicht.

  • »Marcopolox13« ist der Autor dieses Themas

Beiträge: 10

Registrierungsdatum: 26.10.2012

Architektur: 64-Bit PC

Desktop: Unity

  • Nachricht senden

5

13.11.2012, 20:58

aso vielen dank für die korrektur, leider funktioniers trotzdem nicht.

Es wird weiterhin nur das Konsolenfenster gestarted, doch der befehl wird nicht ausgeführd.

Kann es vieleicht an der fremdtapplication liegen? Also hier mal der sinn des ganzen:

Die "anderen anwendung", die den Konsolen befel auslösen soll ist TV-Browser.
Unter "Plugins" -> "Errinnerer" habe ich unter "Errinnern mit" "Aplication ausführen" angehackt und da eben Konnfiguriert
Application:
/usr/bin/gnome-terminal
Parameter:
/usr/bin/gnome-terminal && widge update "{start_hour}:{start_minute} ---> {title} ({original_title}) episode {episode_number} "{episode}" ({original_episode}) @ {channel_name}"

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Marcopolox13« (13.11.2012, 21:09)


6

13.11.2012, 21:05

Hi,
schade, im Terminal funktioniert es so.
War nur eine Idee.
Gruß DH
Wenn Unrecht zu Recht wird, wird Widerstand zur Pflicht.

Beiträge: 6 734

Registrierungsdatum: 04.06.2005

Wohnort: -

Derivat: Kein Ubuntu-Derivat

Version: keine Ubuntu-Version

Architektur: 64-Bit PC

Desktop: anderer

Andere Distribution: Manjaro Linux - OpenBox - KDE

  • Nachricht senden

7

13.11.2012, 21:07

Hallo,

wenn ich ein Programm anweise, eine Konsole zu öffnen geht das natürlich, nur, da eine neue Instanz der Konsole angelegt wird, wird der auszuführende Befehl nicht in diese neue Instanz übertragen.
Nur so als Information warum der den nicht ausführt.

Infos hierzu:
http://www.fibel.org/linux/lfo-0.6.0/node415.html
http://www.trampelwurm.ch/schmidt/wilhel…proccontrol.htm
http://wiki.ubuntuusers.de/Shell/Prozesssteuerung
http://www.jux-net.info/jux2/docs/sys100/comm_34.html

Das was hierbei auftritt nennt man "Kommandosubstitution" oder Neudeutsch "Command substitution" hoffe es hilft dir etwas weiter.

m.f.g.
Carl-Heinz
###--- Gott sei Dank, ich bin weg vom Fenster ---###


Hilfen:
- Mir eine Nachricht senden - - Meine Homepage - - Linux-Beginnerforum -

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Linuxtal« (13.11.2012, 21:23)


.☠.

User

  • ».☠.« wurde gesperrt

Beiträge: 2 660

Registrierungsdatum: 27.02.2010

Derivat: Kein Ubuntu-Derivat

Version: keine Ubuntu-Version

Architektur: 32-Bit PC

Desktop: LXDE

Andere Distribution: Debian 7

  • Nachricht senden

8

13.11.2012, 21:10

Das in #4 bedeutet ja, dass erst das gnome-terminal geöffnet wird und danach das widget (&&)

Wenn man möchte, dass das gnome-terminal ein Kommando ausführt. muss man den entsprechenden Schalter mit angeben. Ein Blick in die manpage sollte da helfen:

Quellcode

1
man gnome-terminal

9

13.11.2012, 21:36

Hi fkf,
man gnome-terminal

Quellcode

1
2
man gnome-terminal
Kein Handbucheintrag für gnome-terminal vorhanden

Gruß DH
Wenn Unrecht zu Recht wird, wird Widerstand zur Pflicht.

  • »Marcopolox13« ist der Autor dieses Themas

Beiträge: 10

Registrierungsdatum: 26.10.2012

Architektur: 64-Bit PC

Desktop: Unity

  • Nachricht senden

10

13.11.2012, 21:40

man gnome-terminal

Vielen Dank für die vielen Tips!

Ich habe grade die 2 möglichkeiten die in dert "man gnome_terminal" beschrieben sind ausprobiert, also:

Quellcode

1
-x twidge update...


Quellcode

1
-e twidge update...



Bei beiden sieht es zwar auf dem ersten blick so aus, als würde es funktionieren (Terminal öffnet sich kurz und schließt sich dan selbständig wieder)
dennoch wird der Tweet nicht gesendet.

Ich kenn mich mit Terminal und UNIX so ganicht aus, wie man bestimmt schon gemerkt hat, deswegen weiss ich bis jetzt nicht weiter, jedenfalls sieht es so aus, als währe ich ein schritt weiter gekommen.

Woran liegt es den jetzt, dass der befehl im Parameter nicht richtig ausgeführt wird?

  • »floogy« ist männlich

Beiträge: 3 084

Registrierungsdatum: 10.03.2005

Wohnort: Koblenz

Architektur: 64-Bit PC

Desktop: GNOME 3.0

Andere Distribution: debian

  • Nachricht senden

11

14.11.2012, 00:28

Zwischen den ' ' soll dann z.B. Dein Befehl stehen:

Quellcode

1
gnome-terminal -x /bin/bash -c 'echo terminal && sleep 10'

Quellcode

1
gnome-terminal -x /bin/bash -c "echo terminal && read -p 'Press [Enter] key to close this terminal window' "

Verwende Zoll Zeichen " statt ' falls im Skriptbefehl Variablen vorkommen sollen.

Quellcode

1
gnome-terminal -e  'sleep 10'

funktioniert allerdings auch.

Der sleep Befehl erlaubt Dir die Ausgabe und Fehlerausgabe des Befehls einzusehen.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »floogy« (14.11.2012, 00:42)


12

14.11.2012, 01:01

Die "anderen anwendung", die den Konsolen befel auslösen soll ist TV-Browser.
Unter "Plugins" -> "Errinnerer" habe ich unter "Errinnern mit" "Aplication ausführen" angehackt und da eben Konnfiguriert
Warum willst du dieses "twidge" in einem Terminal ausführen?
In God They Trust. All Others They Monitor.

Beiträge: 235

Registrierungsdatum: 23.06.2009

Wohnort: Wolke 7

Architektur: 64-Bit PC

Desktop: GNOME 3.0

Andere Distribution: Debian 7.0 wheezy

  • Nachricht senden

13

14.11.2012, 02:05

alternativ den weg über ein script.

gnome-terminal -e htop für htop z.b.

den befehlt schreibste in eine datei und legt die ausfürbar gemacht unter /usr/local/bin ab. nu kann das besagte programm das script aufrufen und das terminal mit dem befehlt started

  • »Marcopolox13« ist der Autor dieses Themas

Beiträge: 10

Registrierungsdatum: 26.10.2012

Architektur: 64-Bit PC

Desktop: Unity

  • Nachricht senden

14

14.11.2012, 16:37

@floogy

Habe deinen Tipp gerade versucht so um zu setzen

Aplication
/usr/bin/gnome-terminal
Parameter:

Quellcode

1
-x twidge -c "update '{start_hour}:{start_minute} ---> {title} ({original_title}) episode {episode_number} {episode} ({original_episode}) @ {channel_name}' "



funktioniert aber leider auch nicht, TV-Browser zeigt die erinnerung an,dann öffnet sich für eine sekunde das konsolen fenster und schließt sich wieder.
Ist es den so richtig umgesetzt?


@Fredl

Mein gedanke dahinter ist, dass mich TV-Browser nicht nur über meinen computer bildschirm über eine erinnerung informirt, sonder auch über mein smart phone.
Die einzigen mittel, die mir dazu eingefallen sind, sind peer email, was sich aber nicht umsetzen lässt, oder eben peer twitter, wofür ich schnell ein teoretischen weg gesehen hab.

Da ich ja über den Terminal befehl

Quellcode

1
twidge update "Tweet Naricht"


einen Tweet absebden kann, suche ich nur noch einen weg, dass der TV-Browsert über diesen befehl einen tweet mit seinen eigenen parametern (TV Kanal, Sendungsname, etc.) absetzen kann.


@SpeeFak


Wie schaffe ich es den, dass der TV Browser seine Parameter (TV Kanal, Sendungsname, etc.) in das script mit einfließen lässt?

  • »floogy« ist männlich

Beiträge: 3 084

Registrierungsdatum: 10.03.2005

Wohnort: Koblenz

Architektur: 64-Bit PC

Desktop: GNOME 3.0

Andere Distribution: debian

  • Nachricht senden

15

14.11.2012, 17:27

Nein, so wird das nichts. Versuche mal das hier:

Quellcode

1
gnome-terminal -x /bin/bash -c "twidge update '{start_hour}:{start_minute} ---> {title} ({original_title}) episode {episode_number} {episode} ({original_episode}) @ {channel_name}' && read -p 'Press [Enter] key to close this terminal window'"


Aber dann ist immer noch fraglich ob das Ganze einen Sinn ergibt....

16

14.11.2012, 17:36

Ich sehe immer noch keinen Sinn darin, zuerst einen Terminal-Emulator zu starten, darin dann die Bash aufzurufen (als ob das der Terminal-Emulator nicht sowieso schon tun würde) und dann endlich das gewünschte Programm zu starten. Ich würde mir eher Gedanken um die richtige Übergabe der Parameter aus dem TV-Browser heraus machen. Mit den zwei Umwegen sind dabei auch noch diverse Bash-Eigenheiten zu beachten.

Eine email kann man übrigens auch mit "mail" bzw. "sendmail" absetzen.
In God They Trust. All Others They Monitor.

  • »Marcopolox13« ist der Autor dieses Themas

Beiträge: 10

Registrierungsdatum: 26.10.2012

Architektur: 64-Bit PC

Desktop: Unity

  • Nachricht senden

17

14.11.2012, 17:41

Kann es vileicht sein, dass das was ich vorhabe so ganicht möglich ist?
Hat jemand vileicht eine andere Idee, wie mein vorhaben klappen könnte?


@Fredl

Ich habe bereits versucht

Aplication
twitget
Parameter
update "Tweet Naricht"

funktioniert aber nicht.


@floogy


Danke für die Korrektur, funktioniert aber leider auch nicht.
Jetzt sehe ich nicht mal mehr das Terminal fenster das sonst für 1 sekunde zu sehen ist.

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Marcopolox13« (14.11.2012, 17:52)


18

14.11.2012, 17:57

Als erstes sollten wir uns einigen, wie das Programm nun wirklich heißt. Ich gehe jetzt einmal von "twidge" aus.
Dann sollte sichergestellt sein, daß das an sich funktioniert. Hast du es denn schon einmal direkt aus dem Terminal so aufgerufen, wie du es dem TV-Browser reindrücken möchtest? Aber halt mit nützlichen Daten statt "{start_hour}:{start_minute}", denn diese Platzhalter werden ja erst später vom TV-Browser ausgefüllt.
In God They Trust. All Others They Monitor.

  • »Marcopolox13« ist der Autor dieses Themas

Beiträge: 10

Registrierungsdatum: 26.10.2012

Architektur: 64-Bit PC

Desktop: Unity

  • Nachricht senden

19

14.11.2012, 18:06

Jap, das Programm heißt twidge.


Kla hab ich es schon ausprobiert, von der Terminal manuell funktioniert es so.

Wenn ich die Tweets, die ich manuell mit

Quellcode

1
twidge update

gesendet habe mit angucke, bekomm ich die auch zu sehen, auf Twitter.com umd auch über den Terminal Befehl


marco@marco-ubuntu:~$ twidge lsarchive
<MyTVBrowser> Test 2
<MyTVBrowser> Konsolen Test 1
<MyTVBrowser> 15:45 ---> Die Waltons (The Waltons) episode 13 "Der
Postflieger" (Air Mail Man) @ Channel 1

Den ersten Tweet "15:45 --> ..." habe ich manuell gesendet um zu sehen, wie es hinterher ankommt.

20

14.11.2012, 18:10

Ich liebe die Waltons :love: