Thread System() ignoriert Minus-Zeichen (-) (8 answers)
Opened by Pussuf at 2013-07-26 11:00

Linuxer
 2013-07-26 11:08
#169142 #169142
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Wenn Du system() einen String übergibst, steckt da noch eine Shell Instanz, die das Kommando interpretiert.
Hast Du schon mal versucht, das Kommando als Array zu definieren und an system zu geben?

http://perldoc.perl.org/functions/system.html

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
my @cmd = (
   'su',
   '-',
   $orauser,
   '-c',
   "brrestore –m full –b $backup –r /tmp/init${SSID}.utl",
);

system( @cmd ) == 0 or die "system(@cmd) failed: $!\n";


Alternativ kannst Du mal anstatt "-" die Option "-l" beim "su" versuchen. Siehe "man su":
man su
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
NAME
su - run a shell with substitute user and group IDs

SYNOPSIS
su [OPTION]... [-] [USER [ARG]...]

DESCRIPTION
Change the effective user id and group id to that of USER.

-, -l, --login
make the shell a login shell

...
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!

View full thread System() ignoriert Minus-Zeichen (-)