Sponsored Content
Top Forums Shell Programming and Scripting C, sh, perl, system(): Can't transfer a return code appropriately: help, pls Post 302412464 by alister on Monday 12th of April 2010 03:20:29 PM
Old 04-12-2010
The system() function will exec a sh and return its exit status. The exit status of "perl_src.c_pl ${fl} || { echo \"$?, wrong;\"; }" will always be 0, unless the echo fails (which is very unlikely).

Code:
$ sh -c 'perl -e "exit 5" || echo perl exit status $?'
perl exit status 5
$ echo sh exit status $?
sh exit status 0

Something along the lines of the following is probably want you want:
Code:
sh -c 'perl ....; pexit=$?; [ $pexit -ne 0 ] && echo $pexit; exit $pexit'

Although, personally, I don't see the point of echoing from the shell pipeline (unless that was part of your troubleshooting process). You can check the exit status in the C code and generate the appropriate message there.

Regards,
Alister

Last edited by alister; 04-12-2010 at 04:33 PM..
 

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
Devel::REPL::Profile(3pm)				User Contributed Perl Documentation				 Devel::REPL::Profile(3pm)

NAME
Devel::REPL::Profile - code to execute when re.pl starts SYNOPSIS
package Devel::REPL::Profile::MyProject; use Moose; use namespace::clean -except => [ 'meta' ]; with 'Devel::REPL::Profile'; sub apply_profile { my ($self, $repl) = @_; # do something here } 1; DESCRIPTION
For particular projects you might well end up running the same commands each time the REPL shell starts up - loading Perl modules, setting configuration, and so on. A mechanism called profiles exists to let you package and distribute these start-up scripts, as Perl modules. USAGE
Quite simply, follow the "SYNOPSIS" section above to create a boilerplate profile module. Within the "apply_profile" method, the $repl variable can be used to run any commands as the user would, within the context of their running "Devel::REPL" shell instance. For example, to load a module, you might have something like this: sub apply_profile { my ($self, $repl) = @_; $repl->eval('use Carp'); } As you can see, the "eval" method is used to run any code. The user won't see any output from that, and the code can "safely" die without destroying the REPL shell. The return value of "eval" will be the return value of the code you gave, or else if it died then a "Devel::REPL::Error" object is returned. If you want to load a "Devel::REPL" plugin, then use the following method: $repl->load_plugin('Timing'); The "load_plugin" and "eval" methods should cover most of what you would want to do before the user has access to the shell. Remember that plugin features are immediately available, so you can load for example the "LexEnv" plugin, and then declare "my" variables which the user will have access to. Selecting a Profile To run the shell with a particular profile, use the following command: system$ re.pl --profile MyProject Alternatively, you can set the environment variable "DEVEL_REPL_PROFILE" to MyProject. When the profile name is unqualified, as in the above example, the profile is assumed to be in the "Devel::REPL::Profile::" namespace. Otherwise if you pass something which contains the "::" character sequence, it will be loaded as-is. AUTHOR
Matt S Trout - mst (at) shadowcatsystems.co.uk (<http://www.shadowcatsystems.co.uk/>) LICENSE
This library is free software under the same terms as perl itself perl v5.14.2 2012-06-02 Devel::REPL::Profile(3pm)
All times are GMT -4. The time now is 09:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy