Interesting news on this:
Once again, I rewrote it (feeling sure it had to be a typo someplace as such a similar function elsewhere was working) and it's now working!
The working code:
Code:
sub getndstatus {
my %results;
my @nds=@{$_[0]};
my @sysmanhandles;
foreach my $check("EnableND","StartND") {
foreach my $nd(@nds) {
my $sysman="$config{'su'} - $config{'user'} -c \'$config{'sysman'} ${check}Check -m $nd\'";
local *SYSMAN;
open(SYSMAN, "$sysman|");
push(@sysmanhandles, *SYSMAN);
}
}
foreach my $check("EnableND","StartND") {
foreach my $nd(@nds) {
my $sysmanhandle=shift @sysmanhandles;
while(<$sysmanhandle>) {
if (/^<([^>]*)> <([^>]*)> (.*)$/) {
$ip=$1;
$result=$2;
$note=$3;
$results{$nd}{$check}="${result}:${note}";
}
}
close($sysmanhandle);
}
}
%results;
}
It turned out the escaped single quotes in the command where required, otherwise su took the remaining parameters to sysman and assumed they where for itself instead.
I can't actually see any differences in this version but I made a special effort to write it 'blind' - that is, I avoided looking at the old code when I wrote this.
I have gone to /usr/bin/ and click on perl but notting happens.also notting happens when i click on c/c++ or any other program
whats wrong ? (2 Replies)
Hi All,
I need some expert help in performing the following in Perl.
I have a code below but it doesn;t seem to work. Can any expert give me some advice?
Below are the requirements
1) Open numerous files assigned to an array @FILES. Note that the files are always named with the term... (7 Replies)
Hi All,
I have a total of ten file to open in the Perl script and i am using a for loop to open each file and capture some strings inside each file.
Unfortunately, i encounter the below syntax error.
I think there should be something wrong with this term reports_${counting}_${_}.txt but i do... (4 Replies)
Hi Guru's,
Pardon me for the breach of rules.....
I have very little knowledge about Shell Programming and Scripting hope you guys help me out of this troble
I have very little time hence could not find the right way to direct my queries.
coming to the problem
I need to call a... (2 Replies)
Good morning guys!!
Im still practicing with Perl and now Im trying to open a file, and copy its contents to another file. Them I want to remeove the information out of the orginal file after it is copied over.
The flow should be messages-->messages1-->messages2.
Kind of like a log... (1 Reply)
Hi,
i have run the below perl code and i am getting an error
Error:readline() on closed filehandle OR at run.pl line 31.
CODE:
===========================================
open OR,$ARGV;
while (<OR>) { # find the batch date
next if length $_ < 3; # BLANK LINE
# last if $. > 120; #... (3 Replies)
Hi
we have one function which is used to append data the file in exclusive lock mode in aperl script.
This script is executed by multiple threads at the same time.
accessing the same file.this script runs throught the day.
sometimes the file2.txt size is getting reduced.
for eg from 10 M... (1 Reply)
Hello friends,
i have a perl script as below ...
for (0 ..$#values)
{
##want to print some message here in Report.txt file
print `find /abc/xyz/pqr/$values" -type f -ls` >> Report.txt
}
I am able to get output of print `find /abc/xyz/pqr/$values" -type f -ls` >> Report.txt
in... (2 Replies)
Discussion started by: harpal singh
2 Replies
LEARN ABOUT NETBSD
shift
shift(1) User Commands shift(1)NAME
shift - shell built-in function to traverse either a shell's argument list or a list of field-separated words
SYNOPSIS
sh
shift [n]
csh
shift [variable]
ksh
* shift [n]
DESCRIPTION
sh
The positional parameters from $n+1 ... are renamed $1 ... . If n is not given, it is assumed to be 1.
csh
The components of argv, or variable, if supplied, are shifted to the left, discarding the first component. It is an error for the variable
not to be set or to have a null value.
ksh
The positional parameters from $n+1 $n+1 ... are renamed $1 ..., default n is 1. The parameter n can be any arithmetic expression that
evaluates to a non-negative number less than or equal to $#.
On this man page, ksh(1) commands that are preceded by one or two * (asterisks) are treated specially in the following ways:
1. Variable assignment lists preceding the command remain in effect when the command completes.
2. I/O redirections are processed after variable assignments.
3. Errors cause a script that contains them to abort.
4. Words, following a command preceded by ** that are in the format of a variable assignment, are expanded with the same rules as a vari-
able assignment. This means that tilde substitution is performed after the = sign and word splitting and file name generation are not
performed.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
SEE ALSO csh(1), ksh(1), sh(1), attributes(5)SunOS 5.10 15 Apr 1994 shift(1)