03-14-2010
Hi wakatana:
I don't think I would go so far as to call it elegant, but there is a standardized utility for dealing with command line options and arguments.
getopts
It's usually implemented as a shell built-in, so search your shell's man page for 'getopts'.
Regards,
Alister
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi Folks,
I am trying to write a simple script which involves a potentially infinite loop repeating a number of tasks quickly.
I would like to enable the user to break out of this when he/she wishes (some key stroke) but not to break out of the script (i.e. which is what happens when a user... (4 Replies)
Discussion started by: beckett
4 Replies
2. Shell Programming and Scripting
H,
I am running the following log.sh shell script.
$no_of_ps=7
while
do
echo "hello $no_of_ps"
ps_file=`tail -$no_of_ps /tmp/A380_RFS24/test.ls | head -1`
no_of_ps=`expr $no_of_ps - 1`
echo "package is: $ps_file" >> /tmp/A380_RFS24/log/A380_RFS24.log
ps_file1=`echo $ps_file| sed... (1 Reply)
Discussion started by: sunitachoudhury
1 Replies
3. Shell Programming and Scripting
Hi all, im doing this script in which i read from a logfile line by line, my problem is this:
The script was working fine until i added this statement to SSH into another machine to look for some data, it enters and retrieves the data just fine, but for some strange reason after it goes thru the... (1 Reply)
Discussion started by: sx3v1l_1n51de
1 Replies
4. Shell Programming and Scripting
I am having trouble figuring this code
I want to grep a text from a file and if it match certain text it break out of the loop or it should continue searching for the text
Here is what I have written but it isn't working
while true
f=`grep 'END OF STATUS REPORT' filename`
do
if ... (9 Replies)
Discussion started by: Issemael
9 Replies
5. Shell Programming and Scripting
...when the lines use both a colon and commas to separate the parts you want read as information.
The first version of this script used cut and other non-Bash-builtins, frequently, which made it nice and zippy with little more than average processor load in GNOME Terminal but, predictably, slow... (2 Replies)
Discussion started by: SilversleevesX
2 Replies
6. Shell Programming and Scripting
notimes=5
word=excellency
the word excellency contains 10 letters. 10 letters divided by 2 = 5. which means, 5 two-groups of letters are in the word excellency.
i need to perform a function on each group of letters. but the only thing i can think of is the following, which i just know... (5 Replies)
Discussion started by: SkySmart
5 Replies
7. Shell Programming and Scripting
Hi I'm comparing same files names which are in different folders .
The first for loop for the files in DAY1 folder and
the second for loop for the files in DAY2 folder .
the first IF condition is for checking whether the file names are equal
the second If condtion is for checking the... (4 Replies)
Discussion started by: smile689
4 Replies
8. UNIX for Dummies Questions & Answers
Hello experts, I need help writing individual files from a data matrix, with each new file being written every time there is a blank line:
From this
cat file.txt
col1 col2 col3
6661 7771 8881
6661 7771 8881
6661 7771 8881
col1 col2 col3
3451 2221 1221... (6 Replies)
Discussion started by: torchij
6 Replies
9. Shell Programming and Scripting
Oracle Linux : 6.4/bash shell
In the below I want to break out of the loop when it enters the 5th iteration.
#!/bin/bash
for i in 1 2 3 4 5 6
do
echo "$i"
if
echo "Oh Nooo... i = $i. I need to stop the iteration and jump out of the loop"
then break
fi
done
But, it only... (3 Replies)
Discussion started by: John K
3 Replies
10. Shell Programming and Scripting
in my python script i have loop like below:
for item in itemlist:
if <condition>:
<code>
else:
<code>
if <condition>:
if <condition>:
<code>
else:
for type in types:
if... (1 Reply)
Discussion started by: ctrld
1 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
system() executes a command specified in command by calling /bin/sh -c command, and returns after the command has been completed. During
execution of the command, SIGCHLD will be blocked, and SIGINT and SIGQUIT will be ignored.
RETURN VALUE
The value returned is -1 on error (e.g. fork(2) failed), and the return status of the command otherwise. This latter return status is in
the format specified in wait(2). Thus, the exit code of the command will be WEXITSTATUS(status). In case /bin/sh could not be executed,
the exit status will be that of a command that does exit(127).
If the value of command is NULL, system() returns nonzero if the shell is available, and zero if not.
system() does not affect the wait status of any other children.
CONFORMING TO
C89, C99, POSIX.1-2001.
NOTES
If the _XOPEN_SOURCE feature test macro is defined, then the macros described in wait(2) (WEXITSTATUS(), 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. E.g.
while (something) {
int ret = system("foo");
if (WIFSIGNALED(ret) &&
(WTERMSIG(ret) == SIGINT || WTERMSIG(ret) == SIGQUIT))
break;
}
Do not use system() from a program with set-user-ID or set-group-ID privileges, because strange values for some environment variables might
be used to subvert system integrity. Use the exec(3) family of functions instead, but not execlp(3) or execvp(3). 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, since bash 2
drops privileges on startup. (Debian uses a modified bash which does not do this when invoked as sh.)
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 return 127, so that code is not a sure indication that the execve(2) call failed.
SEE ALSO
sh(1), signal(2), wait(2), exec(3)
COLOPHON
This page is part of release 3.25 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
2004-12-20 SYSTEM(3)