phpbar.de logo

Mailinglisten-Archive

[php] Shell-Befehle =?iso-8859-1?Q?ausf=FChren?=

[php] Shell-Befehle =?iso-8859-1?Q?ausf=FChren?=

Sandor Wonschik Sandor.Wonschik_(at)_esd.h.uunet.de
Fri, 20 Aug 1999 19:36:37 +0200


Hallo,

irgendwie blicke ich da nicht durch. Ich habe ein paar Befehle, die an
die Shell (unter Linux) weitergereicht werden sollen. Aber es will
einfach nicht klappen.

Wer weiß hier, warum das nicht funktioniert:
<?
	$out="ls ; ls >> datei";

        /* ist die folgende Zeile aktiv, kommt gar nix mehr */
        /*$out=escapeshellcmd("$out");*/

	echo "<br><br>echo<br>";
	echo $out;        
	echo "$out";      
                      
	echo "<br><br>system<br>";		    
	system($out);
	system("$out");		

	echo "<br><br>passthru<br>";
	passthru($out);
	passthru("$out");
	
	echo "<br><br>exec<br>";
	exec($out);
	exec("$out");
?>

Wenn man das, was nach dem "echo $out" ausgegeben wird, direkt in die
Shell eingeben würde, gäbe es das erwartete Ergebnis.

Ganz nebenbei: wie kann man bei der Ausgabe erreichen, daß auch ein
Zeilenumbruch nach jedem File gemacht wird?


Eigentlich ist das oben dargestellte Problem für mich ein prinzipielles,
denn eigentlich wollte ich mir mit einem PHP-Script für alle meine
PHP3-Files im gewählten Ordner Links anlegen, die genauso heißen, aber
auf phps enden. Per Shell-Skript klappt das auch prima. Nun wollte ich
das mal mit PHP umsetzen.

Hier mal das Shell-Script:
#!/bin/sh
for NAME in `ls *.php3`; do
   ln -sf $NAME `echo $NAME | sed s/.php3/.phps/g`
done

Und nun mein PHP-File:
<?
	$out=     "for NAME in `ls *.php3`; do ";
 	$out=$out."ln -sf \$NAME `echo \$NAME | sed s/.php3/.phps/g`;";
	$out=$out."done";

        /* ist die folgende Zeile aktiv, kommt gar nix mehr */
        /*$out=escapeshellcmd("$out");*/

	echo "<br><br>echo<br>";
	echo $out;        
	echo "$out";      
                      
	echo "<br><br>system<br>";		    
	system($out);
	system("$out");		

	echo "<br><br>passthru<br>";
	passthru($out);
	passthru("$out");
	
	echo "<br><br>exec<br>";
	exec($out);
	exec("$out");
?>

Auch hier gilt: wenn man das, was nach dem "echo $out" ausgegeben wird,
direkt in die Shell eingeben würde, gäbe es das erwartete Ergebnis und
die links würden angelegt werden.

Danke schonmal,
Sandor


php::bar PHP Wiki   -   Listenarchive