03-14-2012
Use of stty vs trap in script-driven login menu
My employers would like me to selectively run one of several different (already-existing) Korn Shell menu-driven scripts out of the user's .profile file, depending on some yet-to-be-specified user critieria.
I've never done this kind of thing, but I have the existing scripts (among other things) to look at.
One of the classic concerns when writing such a login menu is the user's ability or inability to break out of it. I'd read that this is where the shell "trap" command is used to trap signals that would normally break out of the script. But the existing scripts don't do that. Instead I see lines like:
stty susp <undef>
stty quit <undef>
and so forth. This undefines the key sequences for interrupt, suspend, etc.
It seems to me that maybe this is a better approach than the 'trap' command, because it does not disrupt the default (and presumably better-thought-out) handling of signals caused by things other than the user pressing keys.
Does anyone have any experiences/opinions about this? Which is the better approach?
Also, what are the advantages/disadvantages/dangers of actually replacing the user's login shell in the password file with the menu script?
Finally, is there any such thing as a generalized (and presumably compiled) menu shell that takes text files of choices and actions as inputs? I could not find any such thing in via Google.
10 More Discussions You Might Find Interesting
1. Homework & Coursework Questions
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:
1) Write a Menu Driven Shell Script which accepts1 to 5 options and performs the following actions for... (1 Reply)
Discussion started by: vaghya
1 Replies
2. Shell Programming and Scripting
How do I assign values to reference variables?
I am assigning a variable name to --> $user_var
Then I am trying to change its underlying variable value by
$((user_var))=$user_value .. its failing,,
Please let me know if there is a way to do this dynamically..
FileA.props... (5 Replies)
Discussion started by: kchinnam
5 Replies
3. Shell Programming and Scripting
Hi Guys..
am new to unix scrpiting..I need a Menu need to create using shell scrpting
eg:
Food items
ready
paid
if i press "f" need to add items for a file food items..
if i press "r" it need to move into ready and remove from food items
if i press "p" need to update a filed in... (1 Reply)
Discussion started by: sasdua
1 Replies
4. SuSE
QUESTION:
Write shell script using menu-driven approach to show various system configuration like
1) Currently logged user and his logname
2) Your current shell
3) Your home directory
4) Your current path setting
5) Your current working directory
6) Show Currently logged number of... (1 Reply)
Discussion started by: bboyjervis
1 Replies
5. UNIX for Dummies Questions & Answers
i'm confused what this means.
i was asked to design a menu or command line option driven script that reads out of a DB and displays info such as
read_data.pl -u <user> -e <event>
which would print commands run by <user>with the <event> in the db.
any suggestions? i've been using... (2 Replies)
Discussion started by: kpddong
2 Replies
6. Shell Programming and Scripting
Hi, I was wondering if someone could help me write a shell script in Linux that backsup/restores data to anywhere I choose but it needs to be menu driven?
Thanks, I'm new to Linux/Unix but liking it so far...just hoping to get to grips with the scripts! :) (7 Replies)
Discussion started by: Nicole
7 Replies
7. Shell Programming and Scripting
I'm a beginner at scripting and have been putting this script together over the past week. It's no where as polish as it could be. Any tips/suggestions on improving this script would be appreciate it. Every week, my team develops WAR files in tomcat on our test environment and moves them to our... (4 Replies)
Discussion started by: bouncer
4 Replies
8. Shell Programming and Scripting
HI All..
below is my menu options script. in option 2,3 and 4 im giving input and they are saving into their respective text file.
problem is when im trying to "cat" those files in options 7,8 and 9 im not getting the output. no respective file contents are displaying on screen. but if i... (1 Reply)
Discussion started by: saichand1985
1 Replies
9. Shell Programming and Scripting
Hi All,
I have written a menu driven bash shell script.
Current Output is as below:
-------------------------------------
Main Menu
-------------------------------------
Option 1
Option 2
Option 3
Option 4
Exit
=====================================
Enter your... (3 Replies)
Discussion started by: kiran_j
3 Replies
10. Shell Programming and Scripting
Hi Team ,
I wrote a shell script for adding and subtracting two numbers am getting error could some one please help to fix it
script:
echo "Enter 1 to add:"
echo "Enter 2 to sub:"
echo "Enter 3 for both addition and subtraction :"
read ans;
case "$ans" in
1)... (4 Replies)
Discussion started by: knz
4 Replies
trap(1) User Commands trap(1)
NAME
trap, onintr - shell built-in functions to respond to (hardware) signals
SYNOPSIS
sh
trap [ argument n [n2...]]
csh
onintr [-| label]
ksh
*trap [ arg sig [ sig2...]]
DESCRIPTION
sh
The trap command argument is to be read and executed when the shell receives numeric or symbolic signal(s) (n). (Note: argument is scanned
once when the trap is set and once when the trap is taken.) Trap commands are executed in order of signal number or corresponding symbolic
names. Any attempt to set a trap on a signal that was ignored on entry to the current shell is ineffective. An attempt to trap on signal 11
(memory fault) produces an error. If argument is absent all trap(s) n are reset to their original values. If argument is the null string
this signal is ignored by the shell and by the commands it invokes. If n is 0 the command argument is executed on exit from the shell. The
trap command with no arguments prints a list of commands associated with each signal number.
csh
onintr controls the action of the shell on interrupts. With no arguments, onintr restores the default action of the shell on interrupts.
(The shell terminates shell scripts and returns to the terminal command input level). With the - argument, the shell ignores all inter-
rupts. With a label argument, the shell executes a goto label when an interrupt is received or a child process terminates because it was
interrupted.
ksh
trap uses arg as a command to be read and executed when the shell receives signal(s) sig. (Note that arg is scanned once when the trap is
set and once when the trap is taken.) Each sig can be given as a number or as the name of the signal. trap commands are executed in order
of signal number. Any attempt to set a trap on a signal that was ignored on entry to the current shell is ineffective. If arg is omitted
or is -, then the trap(s) for each sig are reset to their original values. If arg is the null (the empty string, e.g., "" ) string then
this signal is ignored by the shell and by the commands it invokes. If sig is ERR then arg will be executed whenever a command has a non-
zero exit status. If sig is DEBUG then arg will be executed after each command. If sig is 0 or EXIT for a trap set outside any function
then the command arg is executed on exit from the shell. The trap command with no arguments prints a list of commands associated with each
signal number.
On this man page, ksh(1) commands that are preceded by one or two * (asterisks) are treated specially in the following ways:
1. Variable assignment lists preceding the command remain in effect when the command completes.
2. I/O redirections are processed after variable assignments.
3. Errors cause a script that contains them to abort.
4. Words, following a command preceded by ** that are in the format of a variable assignment, are expanded with the same rules as a vari-
able assignment. This means that tilde substitution is performed after the = sign and word splitting and file name generation are not
performed.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
SEE ALSO
csh(1), exit(1), ksh(1), sh(1), attributes(5)
SunOS 5.10 23 Oct 1994 trap(1)