Sponsored Content
Top Forums Shell Programming and Scripting PS3 and SELECT, is it possible to put a line break? Post 302700075 by Don Cragun on Thursday 13th of September 2012 01:47:50 AM
Old 09-13-2012
Quote:
Originally Posted by newbie_01
Hi Don,

Thanks for your reply. I have to use your first suggestion, why didn't I think of that Smilie Reason being is that your second suggestion does not work on PDKsh and KSH88 Smilie ...I tried it out on the 3 servers that I need to run the script for and the second suggestion you mentioned only works for KSH93.

Good idea on using the return instead of exit. Just to clarify, the return will always return to the calling sub, correct?

BTW, I also just discovered that if I have more than 4 select options to choose, it wraps into the next column, is there any way to control this behavior?

Thanks again for reply.
Yes, ksh didn't add support for $'...' until ksh93.

I'm not sure what you mean by calling sub. In my example, menu_main was called from the main body of the ksh script. A return from a ksh function or dot script will return to the invoking shell script.

I'm also not sure what you mean by wraps into the next column. If you mean that adding more choices to the select makes that line in your script wider than your screen width or editing window width, you can use a
backslash newline to continue your choices onto the next line. For example:
Code:
#!/bin/ksh
menu_main1() {
        PS3="
::  Please choose a VALID option : "
        printf "\n\n"
        select choice_main in "Generic SA" "Refresh Tasks" "Others" \
                "Do Something Else" "Return"
        do
                case $choice_main in
                ( "Generic SA" )
                        echo "Generic SA"
                        clear
                        menu_db_admin;;
                ( "Refresh Tasks" )
                        echo "Refresh Tasks";;
                ( "Others" )
                        echo "Others";;
                ( "Do Something Else" )
                        echo Do Something else;;
                ( "Return" )
                        return;;
                esac
        done
}
echo about to call menu_main1
menu_main1
echo menu_main1 has returned

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Out put with select date. Help !!!

If I have a flatfile like vote.dat NAME | SEX | DATETIME | VOTE Jason|M|2005-12-10 08.01.30|Y Benson|M|2005-12-10 12.01.00|Y William|M|2005-12-10 08.01.09|Y Nick|M|2005-12-11 09.01.07|Y Pascal|M|2005-12-11 01.01.06|Y Mickey|F|2005-12-12 12.01.30|Y How can I write a korn script to have... (4 Replies)
Discussion started by: sabercats
4 Replies

2. Shell Programming and Scripting

TO break a line

hi All, Have a doubt in ksh..Am not familiar with arrays but i have tried out a script.. plzzzzz correct me with the script My i/p File is: (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (Host = 192.168.2.2) (Port = 1525) ) ) (CONNECT_DATA = (SID = TESTDB1) ) ) ... (7 Replies)
Discussion started by: aajan
7 Replies

3. Shell Programming and Scripting

BASH: Break line, read, break again, read again...

...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

4. Shell Programming and Scripting

Remove line based on string and put new line with parameter

Hi Folks, I am new to ksh, i have informatica parameter file that i need to update everyday with shell script. i need your help updating this file with new parameters. sample data $$TABLE1_DATE=04-27-2011 $$TABLE2_DATE=04-23-2011 $$TABLE3_DATE=03-19-2011 .......Highligned... (4 Replies)
Discussion started by: victor369
4 Replies

5. Shell Programming and Scripting

Add line break for each line in a file

I cannot seem to get this to work.. I have a file which has about 100 lines, and there is no end of line (line break \n) at the end of each line, and this is causing problem when i paste them into an application. the file looks like this this is a test that is a test balblblablblhblbha... (1 Reply)
Discussion started by: fedora
1 Replies

6. Shell Programming and Scripting

sed with line break

<td> CIS </td>and I tried to sed 's/<td>\/nCIS\/n<\/td>/<td><\/td>' and sed 's/<td>\/rCIS\/r<\/td>/<td><\/td>' , but no joy. This is an html page that I need to clean. (4 Replies)
Discussion started by: dba_frog
4 Replies

7. UNIX for Dummies Questions & Answers

VI Line Break?

So I'm in a Unix class and our assignment was to go into VI and write a script to make this file tree. At the end of it, I'd like it to echo "This is the file tree you've created" then a line break, then . But I'm not sure as to who to do it. Is there a way for when I run it (./filesystem), the... (4 Replies)
Discussion started by: bbowers
4 Replies

8. Shell Programming and Scripting

PS3 select when wrong input given

Hi All I am using the below code to chose a file to view : PS3="Select file to view : " select FILE in `ls` QUIT do if ; then clear cat $FILE else break fi REPLY='' done Everything works fine as long as I am giving the correct choice . But when i give a... (4 Replies)
Discussion started by: ningy
4 Replies

9. Shell Programming and Scripting

Is is possible to pass multiple entries in PS3 select ?

PS3="Enter corresponding number and hit enter:" select DIR in `cat mylist` QUIT do if then echo "INVALID INPUT" else if ; then my commands ..... else break fi fi REPLY='' done The above will return something like below : Select from the list of... (4 Replies)
Discussion started by: ningy
4 Replies

10. Shell Programming and Scripting

How to break the line to the one above?

Hello everyone! I'm trying to make the below file1 look like file2, can anyone help? Basically I just hit backspace on every line that starts with a number. Thanks! file1: THIS#IS-IT1 4 THIS#IS-IT2 3 THIS#IS-IT3 2 THIS#IS-IT4 1 Result > file2: (4 Replies)
Discussion started by: demmel
4 Replies
shell_builtins(1)						   User Commands						 shell_builtins(1)

NAME
shell_builtins, case, for, foreach, function, if, repeat, select, switch, until, while - shell command interpreter built-in commands DESCRIPTION
The shell command interpreters csh(1), ksh(1), ksh93(1), and sh(1) have special built-in commands. The commands case, for, foreach, func- tion, if, repeat, select, switch, until, and while are commands in the syntax recognized by the shells. They are described in the Commands section of the manual pages of the respective shells. In ksh93(1), fc, hash, stop, suspend, times, and type are aliases by default. In ksh93, the following built-ins are bound to the /bin pathname by default and are invoked if the pathname search encounters an executable command of that name in the /bin or /usr/bin directory: cat, chown, getconf, head, mkdir, rmdir, tee, uniq, and wc. The remaining commands listed in the following table are built into the shells for reasons such as efficiency or data sharing between com- mand invocations. They are described on their respective manual pages. Command Shell ----------------------------------------------------------- ++**alias csh, ksh, ksh93 bg csh, ksh, ksh93, sh +*break csh, ksh, ksh93, sh builtin ksh93 case csh, ksh, ksh93, sh cat ksh93 cd csh, ksh, ksh93, sh chdir csh, sh chown ksh93 command ksh93 +*continue csh, ksh, ksh93, sh dirs csh disown ksh93 echo csh, ksh, ksh93, sh +*eval csh, ksh, ksh93, sh +*exec csh, ksh, ksh93, sh +*exit csh, ksh, ksh93, sh ++**export ksh, ksh93, sh false ksh, ksh93 fc ksh, ksh93 fg csh, ksh, ksh93, sh for ksh, ksh93, sh foreach csh function ksh, ksh93 getconf ksh93 getopts ksh, ksh93, sh glob csh goto csh hash ksh, ksh93, sh hashstat csh head ksh93 hist ksh93 history csh if csh, ksh, ksh93, sh jobs csh, ksh, ksh93, sh kill csh, ksh, ksh93, sh let ksh, ksh93, limit csh login csh, ksh, ksh93, sh logout csh mkdir ksh93 nice csh +*newgrp ksh, ksh93, sh nohup csh notify csh onintr csh popd csh print ksh, ksh93 printf ksh93 pushd csh pwd ksh, ksh93, sh read ksh, ksh93, sh ++**readonly ksh, ksh93, sh rehash csh repeat csh +*return ksh, ksh93, sh select ksh, ksh93 +set csh, ksh, ksh93, sh setenv csh shift csh, ksh, ksh93, sh sleep ksh93 source csh stop csh, ksh, ksh93, sh suspend csh, ksh, sh switch csh tee ksh93 test ksh, ksh93, sh time csh *times ksh, ksh93, sh *+trap ksh, ksh93, sh true ksh, ksh93 type ksh, ksh93, sh ++**typeset ksh, ksh93 ulimit ksh, ksh93, sh umask csh, ksh, ksh93, sh +unalias csh, ksh, ksh93 unhash csh uniq ksh93 unlimit csh +unset csh, ksh, ksh93, sh unsetenv csh until ksh, ksh93, sh *wait csh, ksh, ksh93, sh whence ksh, ksh93 while csh, ksh, ksh93, sh Bourne Shell, sh, Special Commands Input/output redirection is now permitted for these commands. File descriptor 1 is the default output location. When Job Control is enabled, additional Special Commands are added to the shell's environment. In addition to these built-in reserved command words, sh also uses: : No effect; the command does nothing. A zero exit code is returned. .filename Read and execute commands from filename and return. The search path specified by PATH is used to find the directory contain- ing filename. C shell, csh Built-in commands are executed within the C shell. If a built-in command occurs as any component of a pipeline except the last, it is exe- cuted in a subshell. In addition to these built-in reserved command words, csh also uses: : Null command. This command is interpreted, but performs no action. Korn Shell, ksh, Special Commands Input/Output redirection is permitted. Unless otherwise indicated, the output is written on file descriptor 1 and the exit status, when there is no syntax error, is zero. 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 variable assignment. This means that tilde substitution is performed after the = sign and word splitting and file name genera- tion are not performed. In addition to these built-in reserved command words, ksh also uses: * : [ arg ... ] The command only expands parameters. * .file [ arg ... ] Read the complete file then execute the commands. The commands are executed in the current shell environment. The search path specified by PATH is used to find the directory containing file. If any arguments arg are specified, they become the positional parameters. Otherwise, the positional parameters are unchanged. The exit status is the exit status of the last command executed. the loop termination test. Korn Shell, ksh93, Special Commands Input/Output redirection is permitted. Unless otherwise indicated, the output is written on file descriptor 1 and the exit status, when there is no syntax error, is zero. Except for :, true, false, echo, newgrp, and login, all built-in commands accept -- to indicate end of options. They also interpret the option --man as a request to display the manual page onto standard error and -? as a help request which prints a usage message on standard error. Commands that are preceded by one or two + 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. They are not valid function names. 5. Words, following a command preceded by ++ that are in the format of a variable assignment, are expanded with the same rules as a variable assignment. This means that tilde substitution is performed after the = sign and field splitting and file name genera- tion are not performed. In addition to these built-in reserved command words, ksh93 also uses: : [ arg ... ] The command only expands parameters. .name [ arg ... ] If name is a function defined with the function name reserved word syntax, the function is executed in the cur- rent environment (as if it had been defined with the name() syntax.) Otherwise if name refers to a file, the file is read in its entirety and the commands are executed in the current shell environment. The search path specified by PATH is used to find the directory containing the file. If any arguments arg are specified, they become the positional parameters while processing the . command and the original positional parameters are restored upon completion. Otherwise the positional parameters are unchanged. The exit status is the exit status of the last command executed. SEE ALSO
Intro(1), alias(1), break(1), builtin(1), cd(1), chmod(1), csh(1), disown(1), echo(1), exec(1), exit(1), find(1), getoptcvt(1), getopts(1), glob(1), hash(1), history(1), jobs(1), kill(1), ksh(1), ksh93(1), let(1), limit(1), login(1), logout(1), newgrp(1), nice(1), nohup(1), print(1), printf(1), pwd(1), read(1), readonly(1), set(1), sh(1), shift(1), sleep(1), suspend(1), test(1)test(1), test(1B), time(1), times(1), trap(1), typeset(1), umask(1), wait(1), chdir(2), chmod(2), creat(2), umask(2), getopt(3C), profile(4), environ(5) SunOS 5.11 20 Nov 2007 shell_builtins(1)
All times are GMT -4. The time now is 04:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy