C program to execute shell script


 
Thread Tools Search this Thread
Top Forums Programming C program to execute shell script
# 1  
Old 10-27-2009
C program to execute shell script

Hi,

Can anyone give me a sample code to execute shell script from C program.

Thanks
# 2  
Old 10-27-2009
man system
Example:
system("pwd");
# 3  
Old 10-27-2009
C program to execute Shell script with arguments

Hi,

Can anyone help with the below code. I am trying to execute Shell script with arguments in C program but it is giving errors.

Code:
#include <stdlib.h>
#include <stdio.h>

int main (int argc, char *argv[])
{
 int count;
 for (count = 1; count < argc; count++)
 {
   return system("/tmp/lab5.sh ", argv[count]);
 }
 return 0;
}


Last edited by pludi; 10-28-2009 at 03:24 AM.. Reason: code tags, please...
# 4  
Old 10-28-2009
C program to execute script

In C++, you can:

Code:
#include <stdlib.h>
#include <stdio.h>
#include <string>

int main (int argc, char *argv[])
{
 int count;
 std::string cadena = "";
 std::string orden;

 for (count = 1; count < argc; count++)
 {
   cadena.append (argv[count]);
 }
 orden = "/tmp/lab5.sh " + cadena;
 return system(orden.c_str());
}

If you need C language, only you must replace the "append" operation with concatenate (strcat or sprintf) variables C char *.

Last edited by fpmurphy; 10-28-2009 at 09:20 AM.. Reason: code tags added
# 5  
Old 10-28-2009
In "C program to execute Shell script with arguments "thread, you can see an C++ example.
# 6  
Old 10-28-2009
This line of code is invalid
Code:
return system("/tmp/lab5.sh ", argv[count]);

The system() API takes one argument only. Man system for more information.

Hint - create a buffer using an array or malloc(). strcpy "/tmp/lab5.sh " to buffer. strcat argv[count] to the buffer. Use buffer as argument to system API.
# 7  
Old 11-04-2009
Quote:
Originally Posted by baigmd
Hi,

Can anyone help with the below code. I am trying to execute Shell script with arguments in C program but it is giving errors.

Code:
#include <stdlib.h>
#include <stdio.h>

int main (int argc, char *argv[])
{
 int count;
 for (count = 1; count < argc; count++)
 {
   return system("/tmp/lab5.sh ", argv[count]);
 }
 return 0;
}

One more thing - you call return system() in for(). return will terminate main() immediately so you won't have your script executed argc times. I'd suggest to save the return value of system in new variable and examine it if you need error checking.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Execute C program in Current shell

Hello, I have a c program executable which I need to run inside a shell script. But the c program runs in a subshell because of which all the actions done by the c program is not available to the current shell. Is there any way to execute a C program binary executable in the current shell? (4 Replies)
Discussion started by: sachinverma
4 Replies

2. UNIX for Dummies Questions & Answers

Bash script to execute a program to rename files

I just can't figure it out , so please just give me a pice of advise how to: The existing Linux program foo2bar takes as its only argument the name of a single foo file and converts it to an appropriately-named bar file. Provide a script that when executed will run foo2bar against all foo... (4 Replies)
Discussion started by: raymen
4 Replies

3. Shell Programming and Scripting

how to execute a unix shell script from a java program

Hi All, well , i am facing this problem.. i have tried a few sample codes but there isn't any solution . could anyone please give a sample code as of how to do this... Please see the below details...and read the details carefully. I have written some code, logic is 1)from... (4 Replies)
Discussion started by: aish11
4 Replies

4. Shell Programming and Scripting

Execute a C program from Shell

Hi I want to create a shell script tha executes a C program and then retrieves information about it. I managed to run the program with: #!/bin/bash gcc -o program program.c ./program Now i want to get the id of the process (pid) Any help would be appreciated, Thank you (18 Replies)
Discussion started by: nteath
18 Replies

5. Shell Programming and Scripting

Help to write a script or program to automatic execute and link input file data

Output file template format <input_file_name>a</input_file_name> <total_length_size>b</total_length_size> <log_10_length_size>c</log_10_length_size> Input_file_1 (eg. sample.txt) SDFSDGDGSFGRTREREYWW Parameter: a is equal to the input file name b is equal to the total length of... (2 Replies)
Discussion started by: perl_beginner
2 Replies

6. Shell Programming and Scripting

How to use ssh execute other shell script on other host (shell script include nohup)?

i want use ssh on the host01 to execute autoexec.sh on the host02 like following : host01> ssh host02 autoexec.sh autoexec.sh include nohup command like follwing : nohup /home/jack/deletedata.sh & after i execute ssh host02 autoexec.sh one the host01. i can't found deletedata.sh... (1 Reply)
Discussion started by: orablue
1 Replies

7. Shell Programming and Scripting

C program to execute shell script

Hi, Can anyone pls give a sample to execute a shell script from C program Thanks (2 Replies)
Discussion started by: baigmd
2 Replies

8. Shell Programming and Scripting

How to execute a program at expect script

what i need is that after passwordless enter another program should execute. I can succeed passwordless login but ı could not execute (./son) program. pls help me (6 Replies)
Discussion started by: fozay
6 Replies

9. UNIX for Dummies Questions & Answers

Script to open program and send/execute command in program

Hi, i want to write a script that executes a program (exec?) . this program then requires a filename as input. how do i give it this input in the script so the program will be complete run and close by the script. e.g. exec prog.exe program then asks for filename "enter filename:"... (1 Reply)
Discussion started by: tuathan
1 Replies

10. UNIX for Dummies Questions & Answers

Urgent!! How to write a shell program to execute command to access internet?

hi, I am new ot unix. So, can i write a shell(c shell or korn shell) program to access internet? I mean if I run the program, it can access specified url and then copy the html to a file? Can anyone help me? And how can make the program runs every 1 hr? new comer (2 Replies)
Discussion started by: firebirdonfire
2 Replies
Login or Register to Ask a Question