εκτέλεση shell commands μέσα σε perl script
Γιώργος Πάλλας
gpall at ccf.auth.gr
Thu Apr 16 20:04:24 EEST 2009
Καλησπέρα και χρόνια πολλά σε όλους!
Εχω το παρακάτω απλό scriptάκι:
#!/usr/bin/perl
# PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
#25074 root 39 19 3328 488 420 R 91.5 0.0 194:49.03 cat
# 3003 root 20 0 202m 51m 12m S 6.0 2.6 2:36.22 Xorg
# 4 root 15 -5 0 0 0 S 2.0 0.0 1:39.61 ksoftirqd/0
@out = `top -n1`;
while($line = shift @out){
last if ($line =~ /%CPU/);
}
# Auti i line prepei na exei ton top CPU user
$line = shift @out;
@f = split(/\s+/, $line);
print "pid: $f[0], cpu: $f[8], command: $f[11]\n";
@out = `renice 19 $f[0]`;
print @out;
@out = `ionice -c3 -p $f[0]`;
print @out;
======================================
Δεν μπορώ να καταλάβω γιατί μου βγάζει output:
mordor:/home/gpall# perl /root/proj/katsekala.pl
pid: 25074, cpu: 94.5, command: cat
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `renice 19 25074'
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `ionice -c3 -p 25074'
Αφού από ό,τι βλέπω, τις εντολές τις φτιάχνει κανονικά ("renice 19
25074" και "ionice -c3 -p 25074"), τότε που βρίσκει αυτην την αναπάντεχη
παρένθεση; Εντωμεταξύ αν μέσα στο script αντικαταστήσω τη γραμμή:
@out = `renice 19 $f[0]`;
με
@out = `renice 19 25074'`;
τότε αυτό το κομμάτι παίζει. Άρα κάτι έχει να κάνει με την αντικατάσταση
της μεταβλητής $f[0] μέσα στην προς εκτέλεση εντολή. Κάνω κάτι λάθος;;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 9953 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.hellug.gr/pipermail/linux-greek-users/attachments/20090416/fe23b9ae/attachment.bin>
More information about the Linux-greek-users
mailing list