Sponsored Content
Top Forums Shell Programming and Scripting C, sh, perl, system(): Can't transfer a return code appropriately: help, pls Post 302412850 by alex_5161 on Tuesday 13th of April 2010 05:28:52 PM
Old 04-13-2010
I think, I am not clear enough.
Corona688 - I do not have a problem with the perl-script. The error is found and corrected.
I need to be sure that any perl-script problem (script could be changed) will be propagaited into C program and correctly ends the program!

alister - you are right, I am 'echo'ing the result to see that value now, when I debuging the situation.
The main intention is to 'exit $?' - expecting to have in C the same value as it was returned by the perl-script.
By now I exiting with hardwired '2' - as it returned currently by the perl (but it could be different!)

Anyway, by your ansvers, guys, I have realised one point: in the line
Code:
t_sys "perl_src.c_pl ${fl} || { echo \"$?, wrong;\"; } "

the '$?' is substituted by shell BEFORE starting the 't_sys' - because the 'double quotes'! Smilie
My mistake here!

But, alister -
- your point is correct and understood, but the problem is not in the overwriting the return code by echo, but in comming out after the system() - now I see that I had it passed in wrong way.
Anyway, in correct passing way it still comming through the system() changed:
Code:
> sh -c 'perl -e "exit 5;" || exit $? ' ; echo $?
5
> t_sys 'perl -e "exit 5;" || exit $? ' ; echo $?

 executed command: perl -e "exit 5;" || exit $?
 RETURN: 1280
2
>

??? Now it even more unclear: Still system() returns something weird: 1280 instead of 5; but the program some why exiting with 2!!!
What is wrong??

Thank you for your attention!
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

perl "system" cmd return values..

perl 5.6.1: when i try a "system" command(with if loops for $?), i get this: child exited with value 1 what is meant by this $? values and what does it meant if it returns 1?.. (0 Replies)
Discussion started by: sekar sundaram
0 Replies

2. Solaris

transfer data to a remote system from the tape

i need to retrieve the data from tape on to a remote system.how should i go about it can anyone please help.......its urgent (1 Reply)
Discussion started by: jack123
1 Replies

3. Programming

Return code from system()

Hi, Can any one help me in knowing how can I get the return codes/Error codes when using the system() command to fork a command? Regards, MK (1 Reply)
Discussion started by: mradulkaushik
1 Replies

4. UNIX for Dummies Questions & Answers

Pls guide me in learning in Perl Module and packages

Hi, It is very urgent. Pls guide me in learning Perl Module and the Packages. Eventhough i tried in the google, I didnt get upto my expectations. Pls guide me how to create , build Module and the package. Many Thanks. (3 Replies)
Discussion started by: Yamini Thoppen
3 Replies

5. UNIX for Dummies Questions & Answers

to pick up the Return Code ( RC) from the mailx command and return it to SAS uisng 's

Hi All, Can anyone please let me know the syntax / how to pick up the Return Code ( RC) from the mailx command and return it to SAS uisng 'system()' function and '${?}'. I am in a process to send the mail automatically with an attachment to bulk users. I have used 'Mailx' and 'Unencode'... (0 Replies)
Discussion started by: manas6
0 Replies

6. Shell Programming and Scripting

Assistance pls - pipe error: Too many open files in system

When I run a bash script in the customer system, it throws the warning and script exits Exec '/root/sample.sh' @ hostname-- OK (warn) /root/sample.sh: pipe error: Too many open files in system /root/sample.sh: n + : syntax error: operand expected (error token is " ") Exec... (5 Replies)
Discussion started by: vidhyamirra
5 Replies

7. Shell Programming and Scripting

How to delete already existing data in a file using perl? Pls help me!!

Dear Friends, I need urgent help from u.. I have two files,file1 & file 2.. file1 have a existing data of file2.So i want to delete those existing datas from file1 (which contain the data from file1) My file1 like this rs39348 1 1045729 A G 0.1791 0.2054 0.84 ... (3 Replies)
Discussion started by: sureshraj
3 Replies

8. Shell Programming and Scripting

How to get the return code of subroutines executed as standalone as command line in Perl ?

How to do I get the return code of a subroutine in a perl module if invoke the subroutine as standalone, I have an module say TestExit.pm and in that i have a subroutine say myTest() which is returns 12, if i were to call the subroutine from command line like CASE:1 ( Without an explict... (2 Replies)
Discussion started by: ennstate
2 Replies

9. Shell Programming and Scripting

Transfer file from UNIX to MFT system

Hello , I need to write a script that by using scp transfer a csv file from UNIX to a MFT system (MFT is similar to a winscp) with the help of a private/public key. problem is we are not suppose to generate a private key that will be provided to use by an Application team. Can anybody help me... (0 Replies)
Discussion started by: Monika08
0 Replies

10. Shell Programming and Scripting

[solved] awk: return code from system() always 0 ??

Hi all, I currently have the following problem: In an awk script, I am calling a predifend function from the END{} and handing over a command string. This string arrives flawless and is executed like this: function send_msg( cmd_str ) { ... (7 Replies)
Discussion started by: zaxxon
7 Replies
escape(1)							Mail Avenger 0.8.3							 escape(1)

NAME
escape - escape shell special characters in a string SYNOPSIS
escape string DESCRIPTION
escape prepends a "" character to all shell special characters in string, making it safe to compose a shell command with the result. EXAMPLES
The following is a contrived example showing how one can unintentionally end up executing the contents of a string: $ var='; echo gotcha!' $ eval echo hi $var hi gotcha! $ Using escape, one can avoid executing the contents of $var: $ eval echo hi `escape "$var"` hi ; echo gotcha! $ A less contrived example is passing arguments to Mail Avenger bodytest commands containing possibly unsafe environment variables. For example, you might write a hypothetical reject_bcc script to reject mail not explicitly addressed to the recipient: #!/bin/sh formail -x to -x cc -x resent-to -x resent-cc | fgrep "$1" > /dev/null && exit 0 echo "<$1>.. address does not accept blind carbon copies" exit 100 To invoke this script, passing it the recipient address as an argument, you would need to put the following in your Mail Avenger rcpt script: bodytest reject_bcc `escape "$RECIPIENT"` SEE ALSO
avenger(1), The Mail Avenger home page: <http://www.mailavenger.org/>. BUGS
escape is designed for the Bourne shell, which is what Mail Avenger scripts use. escape might or might not work with other shells. AUTHOR
David Mazieres Mail Avenger 0.8.3 2012-04-05 escape(1)
All times are GMT -4. The time now is 02:33 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy