04-05-2006
Quote:
Originally Posted by new2ss
[code]
I am a little confused by the test condition:
if ( system ("/bin/cat $File1 >> $File2") ) Is it testing for successful writing or unsuccessful writing ?
I think the code is correct. You actually tested it on your machine. Did you get the expected behaviour of having the error printed on error?
You do not have to be confused by the semantics of this usage. It appears bizarre, but it actually works that way because system() returns a value that depends on the return value of the command executed. If you read the perldoc for system() you will find that the actual return status is encoded in the least significant 8 bits, and higher bits will be set in the event of other errors. In general, most Unix shell commands have the convention of 0 return status being successful, while other values reflect error status. Therefore, the construct you quoted actually means to detect anything non-zero, that indicates error status. Of course it deviates from typical programming practice that zero is considered false, error, or anything like NULL.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I am totally new to unix commands but I need to understand the following command which is a part of a perl script..what does this mean?
myPwd = $(pwd)
myTracker = $myPwd/myTracker.out
exec > $myTracker 2>&1 (1 Reply)
Discussion started by: athri
1 Replies
2. Shell Programming and Scripting
I understand that in order to run basic unix commands I would normally type at the prompt, I would have to use the following format
system(ls -l);
or
exec(ls -l);
But when I actually try to use the command, the script fails to compile and keeps telling me there is an error with this line. ... (1 Reply)
Discussion started by: userix
1 Replies
3. Shell Programming and Scripting
Hi all,
In the directory '/temp/chris' the following files exist: chris.tar, chris.txt
What i am trying to do is to assign the 'chris.tar' filename in an argument through perl, in order to do that i use the system command:
$file=system("ls /temp/chris/*.tmp), but in the '$file' the exit... (2 Replies)
Discussion started by: chriss_58
2 Replies
4. Programming
hi Guys,
I am planning to write a program which can be able to execute scripts/commands which needs a user to be root.
Note: we are not interested to use sudoers option.
.e.g. The requirement can be explaind as:
A normal UNIX system user cannot execute above command(veritas cluster... (3 Replies)
Discussion started by: Asteroid
3 Replies
5. Shell Programming and Scripting
Executing two unix commads via perl script one after another
e.g: make clean
bsub -i -q short make
have tried using exec but the second command doesnt executes (1 Reply)
Discussion started by: rajroshan
1 Replies
6. UNIX for Advanced & Expert Users
I have an Oracle database running on AIX, and I have a procedure that is calling OS commands from an oracle (and it's not working anymore)...
so, there was an Java stored proc in Oracle
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED COMMON."Host" as import java.io.*;
public class Host {... (1 Reply)
Discussion started by: bongo
1 Replies
7. Shell Programming and Scripting
i have four commands
1. perl -MCPAN -e shell
2. o conf prerequisites_policy follow
3. o conf commit
4. exit
I am attempting to streamline a bunch of yum commands and cpan installations and want to remove the confirmation portion of the cpan these four commands will do just that. my... (2 Replies)
Discussion started by: murphybr
2 Replies
8. UNIX for Dummies Questions & Answers
Hi,
I am not able to run below command on linux, it however works on solaris. If anyone knows the reason and a solution for it can you please let me know ?
Linux
-----
$> ksh 'echo hi'
ksh: echo hi: No such file or directory
$> which ksh
/usr/bin/ksh
Solaris
------
$> ksh 'echo... (2 Replies)
Discussion started by: krishnaux
2 Replies
9. Shell Programming and Scripting
I am trying to run SSH , mkdir and other unix commands using Perl CGI. But i am not able to Execute these commands.
Please help me out !!!!
SSH and mkdir is necessity for me.
I will be thankful to you...!!!!!
I am trying like:
In perl CGI file i am writing like: @list = `ssh... (28 Replies)
Discussion started by: Navrattan Bansa
28 Replies
10. Shell Programming and Scripting
Hi guys, I'm having issues getting the following snippet of my script to work and was hoping for some suggestions.
I'm trying to pass a variable in perl system with wget.
This is what I need help with:
#!/usr/bin/perl
use strict;
use warnings;
use POSIX qw(strftime) ;
my... (3 Replies)
Discussion started by: timj123
3 Replies
exit(1) User Commands exit(1)
NAME
exit, return, goto - shell built-in functions to enable the execution of the shell to advance beyond its sequence of steps
SYNOPSIS
sh
exit [n]
return [n]
csh
exit [ ( expr )]
goto label
ksh
*exit [n]
*return [n]
DESCRIPTION
sh
exit will cause the calling shell or shell script to exit with the exit status specified by n. If n is omitted the exit status is that of
the last command executed (an EOF will also cause the shell to exit.)
return causes a function to exit with the return value specified by n. If n is omitted, the return status is that of the last command exe-
cuted.
csh
exit will cause the calling shell or shell script to exit, either with the value of the status variable or with the value specified by the
expression expr.
The goto built-in uses a specified label as a search string amongst commands. The shell rewinds its input as much as possible and searches
for a line of the form label: possibly preceded by space or tab characters. Execution continues after the indicated line. It is an error to
jump to a label that occurs between a while or for built-in command and its corresponding end.
ksh
exit will cause the calling shell or shell script to exit with the exit status specified by n. The value will be the least significant 8
bits of the specified status. If n is omitted then the exit status is that of the last command executed. When exit occurs when executing
a trap, the last command refers to the command that executed before the trap was invoked. An end-of-file will also cause the shell to exit
except for a shell which has the ignoreeof option (See set below) turned on.
return causes a shell function or '.' script to return to the invoking script with the return status specified by n. The value will be the
least significant 8 bits of the specified status. If n is omitted then the return status is that of the last command executed. If return
is invoked while not in a function or a '.' script, then it is the same as an exit.
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
break(1), csh(1), ksh(1), sh(1), attributes(5)
SunOS 5.10 15 Apr 1994 exit(1)