Schrift
[thread]12342[/thread]

Shell Befehl Echo (Seite 2)

Leser: 2


<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten
Linuxer
 2008-08-12 17:43
#113406 #113406
User since
2006-01-27
3882 Artikel
HausmeisterIn

user image
c4+2008-08-12 14:39:50--
Wäre sehr schade weil ich durch son befehl nen 3 zeiler zu nem einzeiler machen kann!


Wenn, dann machst Du einen Zweizeiler draus, weil Du das Modul auch noch laden musst. Und der Gewinn an gesparter Zeile wiegt den Verlust an Klarheit nicht auf.

Und wenn Du es häufiger brauchst, dann schreibe Dir eine entsprechende Subroutine, mit der Du das als "Einzeiler" durchführen kannst.
(entsprechend LanX' Vorschlag)
Und wenn Du diese Routine dann in ein Modul auslagerst, dass Du bei Bedarf einbindest, brauchst Du die Routine auch nicht rumkopieren.

just my 2 cents. (auch wenn sie sich mit LanX' überschneiden)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
LanX-
 2008-08-12 17:59
#113408 #113408
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Linuxer+2008-08-12 15:43:58--
just my 2 cents. (auch wenn sie sich mit LanX' überschneiden)

teilen wir uns doch die zwo! ;-)
c4
 2008-08-12 18:00
#113409 #113409
User since
2008-08-10
14 Artikel
BenutzerIn
[default_avatar]
@murphy -> Wenn in dem Passwort zum Beispiel '>' vorkommt, können gewiss böse Dinge passieren... <- mmhh das ist auf jedenfall ein gutes Argument!

@Linuxer es ist schon eine subroutine und es ist schon mit perlmitteln gelöst! Die Frage bleibt aber warum das nicht funktionieren will.

@LanX-, wie gesagt ich habs ja schon mit permitteln gelöst. ich will eigentlich nur wissen warum das nicht funtz, dachte am anfang ich mach da irgendeinen Anfänger Fehler, aber scheint ja KEINER lösen zu können.
Desweiteren hab ich da nix verschludert, und vor allem nicht die Variable mit der Ausgabedatei sonst würde wie ich ja oben schon gezeicht habe ein:

Code (perl): (dl )
echo "hallo >> $backupPasswdFile";

Nicht dazu führen das ein "hallo" in der Ausgabe Datei steht! Genau das ist ja das Problem, die übergabe vom ersten Argument. Das wollte ich eigentlich mit diesem beispiel im ersten post schildern. Scheint mir wohl nur bedingt gelungen zu sein.

Also jetzt mal ganz weit hergeholt: Ich vermute das in $line eine Zeigeradresse steht welche auf die SpeicherZelle mit dem richtigen inhalt zeigt. Perl selber kann das wohl interpretieren und auslesen, allerdings kommt der Shell Befehl damit nicht klar. Wie gesagt nur ne Vermutung.

grüSSe
LanX-
 2008-08-12 18:13
#113411 #113411
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Poste doch bitte erst mal einen ausführbaren Code der deine Beobachtung reproduziert!

NACHTRAG: und wenn Larry Wall schreibt es sei nicht für Produktioncode geeignet dann sollte man ihm glauben. Wer weiß was er da mit AUTOLOAD für Seiteneffekte erzeugt, nur um gerade irgendwas schnell zu demonstrieren.
Linuxer
 2008-08-12 18:18
#113413 #113413
User since
2006-01-27
3882 Artikel
HausmeisterIn

user image
Das Problem mit Shell ist für mich nicht nachvollziehbar:

Code: (dl )
1
2
3
4
5
6
7
8
9
$  perl
use Shell qw( echo );

my $var = 'hallo welt';

echo "$var >> test.txt";

$ cat test.txt
hallo welt


edit: korrigiert; danke LanX
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
LanX-
 2008-08-12 18:22
#113414 #113414
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Linuxer+2008-08-12 16:18:18--
Das Problem mit Shell ist für mich nachvollziehbar:


funzt doch!?!
Linuxer
 2008-08-12 18:33
#113415 #113415
User since
2006-01-27
3882 Artikel
HausmeisterIn

user image
LanX-+2008-08-12 16:22:03--
Linuxer+2008-08-12 16:18:18--
Das Problem mit Shell ist für mich nachvollziehbar:


funzt doch!?!

sorry .... edited original post
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
LanX-
 2008-08-12 18:38
#113416 #113416
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
ich sitz gerade an ner Windoofkiste[*] und kann garnix nachvollziehen, aber ehe c4 nicht konkreten Code postet bin ich eh raus. [*] Portabilität hätten wir noch erwähnen sollen.

@c4: Sag mal, gehörst du zu den Leuten die ständig ihren Nick ändern, dein Stil kommt mir bekannt vor ...
MatthiasW
 2008-08-12 18:42
#113417 #113417
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
@c4, eventuell hängt an $UserPass ja noch ein \n. Das wäre ein Grund weshalb es nicht klappen könnte..

MfG
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'
c4
 2008-08-12 19:17
#113420 #113420
User since
2008-08-10
14 Artikel
BenutzerIn
[default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#! /usr//bin/perl -w
#----------------------------------------------------------------
#       Author: c4  
#         Date: 12.08.2008  
#         File: echo.cgi
#  Description: Unknown Shell Echo eRRoR.
#           
#----------------------------------------------------------------

# Bind Modules
#----------------------------------------------------------------
use strict;
use CGI;
use Shell qw(echo);

# MyVars
#----------------------------------------------------------------
my $userPasswdFile = "/tmp/passwd"; #Hier soll das PW rein

# Code
#----------------------------------------------------------------
print "Content-Type: Text/html\n\n";
print "<HTML>\n";
  print "<HEAD><TITLE> Test: Perlscript using Shell echo </TITLE></HEAD>\n";
  print "<BODY>\n";
     print "<H2>Test: Perlscript using Shell echo</H2>\n";
     print "<HR>\n";
     print "<CENTER>Diese Seite wurde durch ein Perlprogramm generiert.</CENTER>\n"; 
     print "<HR>\n";
print "</BODY></HTML>\n";
&writePasswordToFile();

# Subs
#----------------------------------------------------------------
sub writePasswordToFile
{
    my $line = "";
    my $datei = "/tmp/testfile";  #Hier kommt das PW her         
    if ( -e $datei ) {
        open(my $FILE,'<',$datei);
        $line = <$FILE>;
        close $FILE;
    }
    print "<CENTER>Wert der Var. line: '$line'</CENTER>\n";
    print "<CENTER>Wert der Var userPasswdFile: '$userPasswdFile'</CENTER>\n";
    echo "$line >> $userPasswdFile"; #<- pLZ fiX me!
}
#<eof -> echo.cgi>


Najo zu erwähnen bleibt noch das ihr halt nen file erstellt zb.: testfile und in das einfach eine Zeile mit irgendnem wort zahl was auch immer reinkloppt. ich hoffe ihr könnt das jetzt besser nachvollziehen.

@linuxer: Ja ich weiss so funtz es astrein, wie in deinem beispiel da oben!

@MatthiasW: Nein hab kein \n dran.

@LanX-: Nö bin hier ganz neu, aber hier bleib ich hier gefällts mir hat mir schon endzviel weitergeholfen unzählige beiträge über alles was man braucht fünr gutes durchstarten in perl. Auch die user hier aufm forum erste sahne!

@ALL Vielen Dank ;)
<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten



View all threads created 2008-08-12 00:10.