hi,
bin neuling in perl und versuche ein script zu bauen.
Das ganze mache ich auf einem LFS 6.0 (Mit aller nötiger sw).
Die folgende Regex macht aus der aus dem HTML Formular uebergebenen Umgebungsvariable QUERY_STRING, das 'name=' wech.
~s/name=//g
Das script soll shell commands ausfuehren und nun suche ich eine regex, die mir die Parameter der shellkommandos die ich in die Form eingebe mit uebersetzt.
Habe mal folgende Zeile in das Script eingefuegt:
#print "$name\n";
Dadurch sehe ich, das die die Leerstellen zwischen dem Befehl und dem Parameter, die Lehrstelle als + interpretieren.
Das versuche ich dann durch folgende Regex zu filtern:
$name=~s/ +/ /g;
Das geht aber nicht.
Hat vielleicht einer ne Ahnung wie ich das mache.
Hier noch das ganze cgi-pseudo script :o)
#!/usr/bin/perl -w
my $name = $ENV{'QUERY_STRING'};
$shell=$name;
$name=~s/name=//g;
$name=~s/ +/ /g;
print "Content-type: text/html\n\n";
print "<html>\n";
print "<h2>Shell:</h2>\n";
print "<hr>\n<pre>\n";
print "$name\n";
print `$name`;
print "</pre>\n<hr>\n</html>";
gruesse
karan
edit pq: code-tags hinzugefügt\n\n
<!--EDIT|pq|1112370781-->