Sponsored Content
Full Discussion: How to write this scrip
Top Forums Shell Programming and Scripting How to write this scrip Post 83706 by rajeshgngv on Monday 19th of September 2005 01:08:08 AM
Old 09-19-2005
How to write this scrip

Please help me to write a program that accepts a command from the terminal displaying a shell like prompt to accept the command.If the command is logout, the program is terminated. For any other command, it forks a child process passing the command to the child, and then waits for the child to terminate. The child process executes the command using one of the execution function, and then exists. The parent should then print the exit status of the child after analyzing the exit status using available macros, and again waits for the next command to read in. Note that a command may consists of many words seaprated by blanks. If the command is not a 'logout',the first word denotes an execuable file and the remaining words are parameters to the program in the executable file.

Thanks
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Sftp Scrip

I have this script but it is not working I need help, to transmit a file and rename it. #!/bin/ksh final_file="file name" ftp -nvd IP_address << ENDFTP user username password cd <folder where you want to put the file> bin mput $final_file quit ENDFTP (1 Reply)
Discussion started by: HROMERO
1 Replies

2. Shell Programming and Scripting

Using cp command inside shell scrip

Hi, First i would like to say that im a unix begginer. I have a file named /tmp/sample.lst that contain about 20 rows like the following two : '/tmp/aa.txt' '/temp/aa.txt' '/tmp/xx.txt' '/temp/xx.txt' Inside a ksh script i would like to do the following task: add the cp command at... (2 Replies)
Discussion started by: yoavbe
2 Replies

3. UNIX for Advanced & Expert Users

how torun an awk scrip from a web page

Hi Everyone, Can someone plz tell me how can I invoke an awk script from a web page? I would also like to pass some arguments to the script.... Thanks in advance Rachana (2 Replies)
Discussion started by: rachana8p
2 Replies

4. Shell Programming and Scripting

Awk scrip to remove empty field

Hi I have a file which looks like this name: Sally group: Group4 name: Tim group: Group1 name: Dan group: Group2 name: Chris group: Group3 name: Peter group: name: Fred group: name: Mary group: Group2 Well I want to get rid of the... (4 Replies)
Discussion started by: bombcan
4 Replies

5. Shell Programming and Scripting

Bash scrip segfaulting.

Hi, I've got problem with one bash scrip which can run for random time (12h+) and then segfault: clusterapp: segfault at 00007fff23100d00 rip 0000003da22426b4 rsp 00007fff23100cd0 error 6 clusterapp: segfault at 00007fff45cc3f50 rip 0000003da22426b4 rsp 00007fff45cc3f20 error 6 bash... (5 Replies)
Discussion started by: columb
5 Replies

6. UNIX for Advanced & Expert Users

How to convert shell scrip to binaric command

here is a typical question for everyone ... How to convert a given shell script to binaric command along with its shell script switches. Any !dea (1 Reply)
Discussion started by: raghunsi
1 Replies

7. IP Networking

read/write,write/write lock with smbclient fails

Hi, We have smb client running on two of the linux boxes and smb server on another linux system. During a backup operation which uses smb, read of a file was allowed while write to the same file was going on.Also simultaneous writes to the same file were allowed.Following are the settings in the... (1 Reply)
Discussion started by: swatidas11
1 Replies

8. Shell Programming and Scripting

need help for scrip to monitor disk utilization

Hi, I need help to write a script which will monitor disk utilization. Please suggest the best approach to achive this. I am thinking of having sleep inside the script which will run for(eg.) 60 secs and then disk utilization will be checked and depends on the % usage of disk mail will... (1 Reply)
Discussion started by: sunilmenhdiratt
1 Replies

9. Shell Programming and Scripting

Tunnig scrip.sh

Hi All, I wrote the following script : #!/bin/bash t1=serv1 t2=serv2 t3=serv3 t4=serv4 t5=serv5 t=`echo $* | awk '{print $4}'` if then /usr/bin/zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -s "syslog" -k trap_1 -o "$*" elif then /usr/bin/zabbix_sender -c... (4 Replies)
Discussion started by: primo102
4 Replies

10. Homework & Coursework Questions

Help with shell scrip syntax errors

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: This script will analyse the channels.txt e registrations.txt and it will allow to mage the channels and the... (9 Replies)
Discussion started by: Demas
9 Replies
SYSTEM(3)                                                    Linux Programmer's Manual                                                   SYSTEM(3)

NAME
system - execute a shell command SYNOPSIS
#include <stdlib.h> int system(const char *command); DESCRIPTION
The system() library function uses fork(2) to create a child process that executes the shell command specified in command using execl(3) as follows: execl("/bin/sh", "sh", "-c", command, (char *) 0); system() returns after the command has been completed. During execution of the command, SIGCHLD will be blocked, and SIGINT and SIGQUIT will be ignored, in the process that calls system() (these signals will be handled according to their defaults inside the child process that executes command). If command is NULL, then system() returns a status indicating whether a shell is available on the system. RETURN VALUE
The return value of system() is one of the following: * If command is NULL, then a nonzero value if a shell is available, or 0 if no shell is available. * If a child process could not be created, or its status could not be retrieved, the return value is -1. * If a shell could not be executed in the child process, then the return value is as though the child shell terminated by calling _exit(2) with the status 127. * If all system calls succeed, then the return value is the termination status of the child shell used to execute command. (The termina- tion status of a shell is the termination status of the last command it executes.) In the last two cases, the return value is a "wait status" that can be examined using the macros described in waitpid(2). (i.e., WIFEX- ITED(), WEXITSTATUS(), and so on). system() does not affect the wait status of any other children. ATTRIBUTES
For an explanation of the terms used in this section, see attributes(7). +----------+---------------+---------+ |Interface | Attribute | Value | +----------+---------------+---------+ |system() | Thread safety | MT-Safe | +----------+---------------+---------+ CONFORMING TO
POSIX.1-2001, POSIX.1-2008, C89, C99. NOTES
system() provides simplicity and convenience: it handles all of the details of calling fork(2), execl(3), and waitpid(2), as well as the necessary manipulations of signals; in addition, the shell performs the usual substitutions and I/O redirections for command. The main cost of system() is inefficiency: additional system calls are required to create the process that runs the shell and to execute the shell. If the _XOPEN_SOURCE feature test macro is defined (before including any header files), then the macros described in waitpid(2) (WEXITSTA- TUS(), etc.) are made available when including <stdlib.h>. As mentioned, system() ignores SIGINT and SIGQUIT. This may make programs that call it from a loop uninterruptible, unless they take care themselves to check the exit status of the child. For example: while (something) { int ret = system("foo"); if (WIFSIGNALED(ret) && (WTERMSIG(ret) == SIGINT || WTERMSIG(ret) == SIGQUIT)) break; } According to POSIX.1, it is unspecified whether handlers registered using pthread_atfork(3) are called during the execution of system(). In the glibc implementation, such handlers are not called. In versions of glibc before 2.1.3, the check for the availability of /bin/sh was not actually performed if command was NULL; instead it was always assumed to be available, and system() always returned 1 in this case. Since glibc 2.1.3, this check is performed because, even though POSIX.1-2001 requires a conforming implementation to provide a shell, that shell may not be available or executable if the calling program has previously called chroot(2) (which is not specified by POSIX.1-2001). It is possible for the shell command to terminate with a status of 127, which yields a system() return value that is indistinguishable from the case where a shell could not be executed in the child process. Caveats Do not use system() from a privileged program (a set-user-ID or set-group-ID program, or a program with capabilities) because strange val- ues for some environment variables might be used to subvert system integrity. For example, PATH could be manipulated so that an arbitrary program is executed with privilege. Use the exec(3) family of functions instead, but not execlp(3) or execvp(3) (which also use the PATH environment variable to search for an executable). system() will not, in fact, work properly from programs with set-user-ID or set-group-ID privileges on systems on which /bin/sh is bash version 2: as a security measure, bash 2 drops privileges on startup. (Debian uses a different shell, dash(1), which does not do this when invoked as sh.) Any user input that is employed as part of command should be carefully sanitized, to ensure that unexpected shell commands or command options are not executed. Such risks are especially grave when using system() from a privileged program. SEE ALSO
sh(1), execve(2), fork(2), sigaction(2), sigprocmask(2), wait(2), exec(3), signal(7) COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/. 2017-09-15 SYSTEM(3)
All times are GMT -4. The time now is 09:12 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy