#!/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:
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)
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)
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)
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)
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)
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)
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)
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
LEARN ABOUT REDHAT
errx
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