Sponsored Content
Top Forums Shell Programming and Scripting Help on case to call recursively in UNIX Shell Script Post 302810897 by Don Cragun on Wednesday 22nd of May 2013 04:49:57 PM
Old 05-22-2013
You could try something like:
Code:
#!/bin/ksh
# Initialize variables
d1=0
d2=0
d3=0
err=0
while [ 1 ]
do      if [ $d3 = 0 ]
        then    list="3, 4"
        else    list="4"
        fi
        if [ $d2 = 0 ]
        then    list="2, $list"
        fi
        if [ $d1 = 0 ]
        then    list="1, $list"
        fi
        printf "Choose an unused selection (%s): " "$list"
        read choice
        case "$choice" in
        (1)     if [ $d1 = 1 ]
                then    printf "Choice 1 is invalid.\n" >&2
                        err=$((err + 1))
                        continue
                fi
                d1=1
                echo 'Choice 1 has been processed.';;
        (2)     if [ $d2 = 1 ]
                then    printf "Choice 2 is invalid.\n" >&2
                        err=$((err + 1))
                        continue
                fi
                d2=1
                echo 'Choice 2 has been processed.';;
        (3)     if [ $d3 = 1 ]
                then    printf "Choice 3 is invalid.\n" >&2
                        err=$((err + 1))
                        continue
                fi
                d3=1
                echo 'Choice 3 has been processed.';;
        (4)     echo 'Choice 4 has been processed.'
                break;;
        esac
done
printf "%d error(s) reported.\n" $err
if [ $d1 -eq 0 ]
then    echo '#1 was not selected'
fi
if [ $d2 -eq 0 ]
then    echo '#2 was not selected'
fi
if [ $d3 -eq 0 ]
then    echo '#3 was not selected'
fi

Or use something similar to what you have been using when creating the menu, but only echo the items in the menu that haven't been chosen using something like the if statements close to the start of this script.
This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

lower case to upper case string conversion in shell script

How can convert a Lower case variable value to an upper case in the kron shell script. (3 Replies)
Discussion started by: dchalavadi
3 Replies

2. UNIX for Dummies Questions & Answers

Call a UNIX shell with parameters from C

Hello...I hava quite a problem, couldn't find a solution anywhere :(. I have a C program, and from that C program I have to call a shell script. This is not difficult, I can do it using the "system" command from C. But the ugly part is how can I send as parameters some variables? For example...i... (1 Reply)
Discussion started by: dustman
1 Replies

3. Programming

How to call the C Programme in UNIX shell scripting...?

Hi All, How to call the C programme in UNIX shell scripting? please send me some sample script for the above scenario. Regards, MPS:b: (1 Reply)
Discussion started by: psiva_arul
1 Replies

4. Shell Programming and Scripting

Shell Script - find, recursively, all files that are duplicated

Hi. I have a problem that i can't seem to resolve. I need to create a script that list all the files, that are found recursively, with the same name. For example if a file exists in more than one directory with the same name it list all the files that he founds with all the info. Could someone... (5 Replies)
Discussion started by: KitFisto
5 Replies

5. Shell Programming and Scripting

Need to find recursively all shell script in the /xyz directory

Pls. advise how to find or used grep recursively all shell script files. Some files doesnt have a .sh or .ksh extension name. find / -name "*" |xargs grep bin |grep sh ?? TIA (1 Reply)
Discussion started by: budz26
1 Replies

6. Shell Programming and Scripting

Shell script to copy particular file from directories recursively

I have directory path in which there are several sub directories. In all these sub dir there will be one env.cnf file. I want to copy this env.cnf file from each sub dir's and place them in destination path by creating same filename as sub dir_env.cnf. After copying env.cnf files from source... (4 Replies)
Discussion started by: Optimus81
4 Replies

7. Shell Programming and Scripting

Call sql script from UNIX shell script

I know this question is out there in many forums, but I tried all the combinations in vain. I'm basically trying to call a sql script from a shell script. Below is my sql script (plsql.sql) DELCARE v_empno NUMBER := '&empno'; BEGIN select ename,sal from emp where empno = v_empno;... (3 Replies)
Discussion started by: FName_LName
3 Replies

8. Shell Programming and Scripting

Case statement in UNIX shell script

have written the below code to check whether the string received from user is a file name or dir using case statement, but its going into default case*). #!/bin/sh #Get a string from user and check whether its a existing filename or not rm str2 rm str3 echo "enter a file \c" read fil... (8 Replies)
Discussion started by: Mohan0509
8 Replies

9. Programming

Writing a UNIX shell script to call a C function and redirecting data to a .txt file

Hi, I am complete new to C programming and shell scripting. I just wrote a simple C code to calculate integral using trapezoid rule. I am prompting user to pass me No. of equally spaced points , N , upper and lower limit. My code looks as follows so far: #include<stdio.h> #include<string.h>... (2 Replies)
Discussion started by: bjhjh
2 Replies

10. Shell Programming and Scripting

Shell script run in a case statement call to run a php file, also Perl

Linux System having all Perl, Python, PHP (and Ruby) installed From a Shell script, can call a Perl, Python, PHP (or Ruby ?) file eg eg a Shell script run in a case statement call to run a php file, also Perl or/and Python file??? Like #!/usr/bin/bash .... .... case $INPUT_STRING... (1 Reply)
Discussion started by: hoyanet
1 Replies
ERR(3)							   BSD Library Functions Manual 						    ERR(3)

NAME
err, verr, errx, verrx, warn, vwarn, warnx, vwarnx, -- formatted error messages SYNOPSIS
#include <err.h> void err(int eval, const char *fmt, ...); void errx(int eval, const char *fmt, ...); void warn(const char *fmt, ...); void warnx(const char *fmt, ...); #include <stdarg.h> void verr(int eval, const char *fmt, va_list args); void verrx(int eval, const char *fmt, va_list args); void vwarn(const char *fmt, va_list args); void vwarnx(const char *fmt, va_list args); DESCRIPTION
The err() and warn() family of functions display a formatted error message on the standard error output. In all cases, the last component of the program name, a colon character, and a space are output. If the fmt argument is not NULL, the printf(3) -like formatted error message is output. The output is terminated by a newline character. The err(), verr(), warn(), and vwarn() functions append an error message obtained from strerror(3) based on a code or the global variable errno, preceded by another colon and space unless the fmt argument is NULL. The err(), verr(), warn(), and vwarn() functions use the global variable errno to look up the error message. The errx() and warnx() functions do not append an error message. The err(), verr(), errx(), and verrx() functions do not return, but exit with the value of the argument eval. EXAMPLES
Display the current errno information string and exit: if ((p = malloc(size)) == NULL) err(1, NULL); if ((fd = open(file_name, O_RDONLY, 0)) == -1) err(1, "%s", file_name); Display an error message and exit: if (tm.tm_hour < START_TIME) errx(1, "too early, wait until %s", start_time_string); Warn of an error: if ((fd = open(raw_device, O_RDONLY, 0)) == -1) warnx("%s: %s: trying the block device", raw_device, strerror(errno)); if ((fd = open(block_device, O_RDONLY, 0)) == -1) err(1, "%s", block_device); SEE ALSO
exit(3), printf(3), perror(3), strerror(3) HISTORY
The err() and warn() functions first appeared in 4.4BSD. BSD
March 6, 1999 BSD
All times are GMT -4. The time now is 06:01 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy