Konsole mit Parametern -> Parameter als Befehl ausführen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
LeoManiac
Beiträge: 179
Registriert: 02.10.2003 20:22:30

Konsole mit Parametern -> Parameter als Befehl ausführen

Beitrag von LeoManiac » 09.01.2004 20:08:08

hi,

ich hab mal eine Frage kann ich die Konsole mit Parametern aufrufen und diese Parametern sollen nachdem Auruf als Befehl ausgeführt werden , geht das oder muss ich da mit pipes arbeiten ?

Das ganze hat folgenden Hintergrund ich möchte mir per php und ein klein wenig JavaScript eine Konsole simulieren mit hilfe von popen() , gut ok ich könnte natürlich die Befehle direkt per /bin/<befehl> öffnen aber dann würden z.b. selbst definierte Aliases nicht funktionieren oder sehe ich das Falsch ?

Wenn mir jemand ein kleines Beispiel oder einen besseren Ansatz geben könnte wäre ich sehr dankbar.

Benutzeravatar
g-henna
Beiträge: 733
Registriert: 03.11.2003 14:59:56
Wohnort: Berlin

Re: Konsole mit Parametern -> Parameter als Befehl ausführen

Beitrag von g-henna » 09.01.2004 21:22:02

Hi!
LeoManiac hat geschrieben:Wenn mir jemand ein kleines Beispiel oder einen besseren Ansatz geben könnte wäre ich sehr dankbar.
Ja, dafür wäre ich auch dankbar, ich hab keine Ahnung, was du meinst *grin* Nee, kannst du vielleicht mal konkret schildern, an einem Beispiel, was du vorhast? Dann versteh zumindest ich vielleicht besser, was du willst. Ansonsten, was ich hier schon mal einwerfen kann... wenn du einen Programmparameter hast, der identisch ist, mit einer Programmausgabe, kannst du das mit $(Programm) machen. Also z.B. um alle Dateien ausgeben zu lassen, die mit .bla aufhören, sollte ein
$ cat $(locate *.bla)
funktionieren, kann ich aber grad net ausprobieren.

Bye
g-henna
follow the penguin...

LeoManiac
Beiträge: 179
Registriert: 02.10.2003 20:22:30

Beitrag von LeoManiac » 09.01.2004 21:51:13

Ganz einfach ich wollte die Konsole von einen PHP Script aus öffnen und den Parameter der hinter dem Konsolenaufruf steht direkt ausführen.

Aber ich hab mein Problem schon gelöst mit Pipes.

Wenns wenn interesiert , ich hab ne kleine PHP Klasse geschrieben die sicherlich noch verbesserungsfähig ist aber meinen Ansprüchen voll und ganz entspricht

Code: Alles auswählen

class KONSOLE {
	var $konsole;
	var $mode;
                     var $spacer;
	
	function KONSOLE($konsole,$spacer = " | ", $mode = "r") {
		$this->konsole = $konsole;
		$this->mode = $mode;
                                          $this->spacer = $spacer;
	}
	
	function callBefehl($befehl,$linespacer = "\n") {
		$fp = popen($this->bash.$this->spacer.$befehl,$this->mode);
		while(!feof($fp)){  
			$ausgabe = fgets($fp,300);
			echo $ausgabe;  
			echo $linespacer;
		}
		pclose($fp);
	}
}
Das ganze schön in HTML Forms gepackt mit einen JavaScript das reagiert sobald im Eingabe-Input-Feld ENTER gedrückt wurde das Formular an sich selber schickt und die Klassenfunktion callBefehl() innerhalb des Textfield (Textfield deshalb weil man dann schön den alten Inhalt vorhergehend wieder listen kann) aufrufen ;)

Allerdings hat das ganze den Nachteil das man IMMER mit direkten Pfadangaben arbeiten muss, weil die Konsole nach dem Aufruf direkt wieder geschlossen wird.

Ich hab mir schon überlegt das vieleicht in nen JavaApplet zu packen aber das is mir zuviel Aufwand für den Zweck was es erfüllen soll aber für neue Ideen bin ich immer offen ;)
Zuletzt geändert von LeoManiac am 10.01.2004 00:23:16, insgesamt 1-mal geändert.

LeoManiac
Beiträge: 179
Registriert: 02.10.2003 20:22:30

Beitrag von LeoManiac » 10.01.2004 00:17:57

das problem hierbei ist aber wenn ich zb. den cat Befehl ausfürhen möchte muss ich xtra /bin/cat öffnen schöne wäre es ja natürlich wenn ich dies über /bin/sh cat machen könnte kennt dafür vieleicht wer eine Lösung ?

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 10.01.2004 01:16:37

Ich habe bei mir auf dem Webserver ein SSH Applet installiert, mit dem man sich dann auf dem Rechner einloggen kann. Man braucht nur einen Java fähigen Browser und einen Internet Zugang...

http://javassh.org/

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

LeoManiac
Beiträge: 179
Registriert: 02.10.2003 20:22:30

Beitrag von LeoManiac » 10.01.2004 01:21:55

übers internet soll das gar nicht funktionieren reicht wenn das im LAN funktioniert

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 10.01.2004 01:22:56

Kann man ja entsprechend konfigurieren... (htaccess)

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

LeoManiac
Beiträge: 179
Registriert: 02.10.2003 20:22:30

Beitrag von LeoManiac » 10.01.2004 17:39:53

Hi

ich hab mit diesen javassh ein kleines Problem es ist alles soweit auf den Webserver (lokaler Rechner bei mir im LAN) aber wenn ich das Applet aufrufe wird es zwar geladen aber es passiert nix weiter außer das nach ca. 1 min. abricht.

Und wenn ich das applet im Opera öffne erscheint immer die Meldung "Apllet crashed"

Woran könnte das liegen ? Ich hab erstmal die default.conf genommen

Code: Alles auswählen

java version "1.4.2_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_01-b06)
Java HotSpot(TM) Client VM (build 1.4.2_01-b06, mixed mode)

Antworten