Thread quoten (Shell Aufruf)
(13 answers)
Opened by wenze at 2018-08-20 13:29
Wenn man das Quoting manuell macht, wird in aller Regel der \ verwendet, nicht /.
Gerade bei Deinem zweiten Beispiel drängt sich der Gedanke auf, dass da die Zeichen verwechselt wurden: Code: (dl
)
su - $sidadm -c /" cat /dev/null > /var/spool/mail/$sidadm/" Sollte vielleicht eher Code: (dl
)
su - $sidadm -c \" cat /dev/null > /var/spool/mail/$sidadm\" heißen? Wenn Du den richtigen Operator verwendest, kannst Du Dir sogar einiges an Quoting sparen. Eine Variante wäre der von GwenDragon bereits aufgezeigte qx// Operator. Wenn Du beim system() bleiben willst, kämen auch noch q() oder qq() in Frage. Erklärung zu beiden gibt es ebenfalls unter http://perldoc.perl.org/perlop.html#Quote-Like-Ope... Damit könnte man dann schreiben: Code (perl): (dl
)
1 2 my $command = qq( su - $sidadm -c "cat /dev/null > /var/spool/mail/$sidadm" ); system( $command ) == 0 or die "Failed <$command>: $!"; edit: minor fixes Last edited: 2018-08-20 14:42:02 +0200 (CEST) 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! |