Sponsored Content
Top Forums Shell Programming and Scripting Help with 'select' for menu input Post 302992834 by edstevens on Thursday 2nd of March 2017 07:48:20 AM
Old 03-02-2017
Quote:
Originally Posted by Corona688
Try changing the value of IFS to newline, so select (and shell syntax in general) only splits output on lines:

Code:
OLDIFS="$IFS"
IFS="
"

You'll want to do IFS="$OLDIFS" whenever not in that loop to prevent splitting from acting strange later.

Close, but still not quite there. It's retaining the first three columns but still breaking off the fourth:

Revised code:

Code:
echo Select a backup from the following:
bkupset=''
OLDIFS="$IFS"
IFS="
"
PS3='Select backup: '
echo "   DBID     |TAG                    |START_TIME          |KEEP_UNTIL"
while [[ $bkupset = "" ]]; do
  select bkupset in $(sqlplus -s $rmanuser/$rmanpw@rmcat <<EOF
              set echo off feedback off verify off head off trimsp on
              alter session set nls_date_format='dd-Mon-yyyy_hh24:mi:ss';
              select d.dbid,
                      bp.tag,
                      min(bp.start_time),
                      min(bs.keep_until)
               from rc_backup_piece bp
               join rc_database d
                 on bp.db_key=d.db_key
               join rc_backup_set bs
                 on bp.bs_key=bs.bs_key
               where d.name=upper('$ORACLE_SID')
                 and bs.keep='YES'
               group by d.dbid,
                        bp.tag,
                        bs.keep_until
               order by d.dbid,
                        bp.tag
               ;
EOF
) "None of the above" ; do
  if [[ $bkupset = "" ]]; then
     echo
     echo "Please enter a valid number. Retry.";
     echo
  elif [[ $bkupset = "None of the above" ]]; then
     exit ;
  else {
        break ;
       }
  fi
  break
  done
done
#
unset PS3
IFS="$OLDIFS"

Result:

Code:
Select a backup from the following:
   DBID     |TAG                    |START_TIME          |KEEP_UNTIL
1)  528959692 MYDB_20170228_104831       28-Feb-2017_10:49:11
2) 31-Mar-2017_00:00:00
3)  528960845 MYDB_20170228_105831       28-Feb-2017_10:59:14
4) 15-Mar-2017_00:00:00
5) None of the above
Select backup: 5

Btw, just to make sure I'm not getting confuse by font rendering on my screen, your suggested change to IFS is

IFS=" < that's IFS equals double-quote sign followed by new line
" < followed by another double-quote sign.

In vi, with line numbering on, it looks like this

Code:
131 IFS="
132 "

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

dynamic Select menu

Hi all is menu driven by SELECT can be a dynamic ? My requirement is that i want SELECT to be created on run time not predefine . The select should be created as per the no of words in a file thanks in advance rawat (2 Replies)
Discussion started by: rawatds
2 Replies

2. Shell Programming and Scripting

Drop down menu in bash for timezone select

Is there any way to implement a drop down menu selection in bash? This is on CDLinux which is a very minimal live CD and I am using it to install an image onto a hard drive. Part of that process is the timezone selection. There are just too many timezones to attempt to use the "select" command.... (1 Reply)
Discussion started by: simonb
1 Replies

3. Shell Programming and Scripting

reappearing menu list using select

is there a way I can make the menu list reappear when I use select ? ----- menulist="Change_title Remove_tag Change_tag Add_line Quit" select word in $menulist #change_title remove_tag change_tag add_line quit do case $word in # first menu option Change Title ... (9 Replies)
Discussion started by: forever_49ers
9 Replies

4. Shell Programming and Scripting

Select command to build menu

Hello everyone. I am using the select command to build a menu, here is my question: Is it possible to generate a menu which contains several sections and have a separator between the sections without having a selection number generated in front of the separator? This is a sample of what I would... (1 Reply)
Discussion started by: gio001
1 Replies

5. Shell Programming and Scripting

Error using select menu command

Hi All, I am trying to use the select command & the menu. below mention is my script #!/bin/bash 2 3 PS3="Is today your birthday? " #PS3 system variable 4 5 echo "\n" 6 7 8 select menu_selection in YES NO QUIT 9 do 10 11 ... (1 Reply)
Discussion started by: milindb
1 Replies

6. Shell Programming and Scripting

reprint the select menu after a selection

Hi, I am using a select in ksh for a script #!/bin/ksh FIRSTLIST='one two three four quit' PS3='Please select a number: ' select i in $FIRSTLIST ; do case $i in one) print 'this is one' ;; two) print 'this is 2' ;; three) print 'this is 3' ;; four) print... (7 Replies)
Discussion started by: omerzzz
7 Replies

7. Shell Programming and Scripting

Select ksh menu question

I am creating a Select menu with a few options and I would like to create a "better" looking interface than just this: 1) Option 1 2) Option 2 3) Option 3 Instead, I would like something like this: *********** * Cool Script * * 1) Option 1 * * 2) Option 2 * * 3) Option 3 *... (2 Replies)
Discussion started by: chipblah84
2 Replies

8. Shell Programming and Scripting

File Select Menu Script

Hi All, I need to develop a bash script list “list of files” and able to select if any and set as globe variable in script and use for other function. I would like to see in menu format. Example out put Below are the listed files for database clone 1. Sys.txt 2. abc.txt 3. Ddd.txt... (1 Reply)
Discussion started by: ashanabey
1 Replies

9. Shell Programming and Scripting

Format of 'select' generated menu

Oracle Linux 5.6 64-bit Given the below snippet ORACLE_SID='' PS3='Select target (test) database being refreshed: ' # while ]; do select ORACLE_SID in `egrep -i '^FS|^HR' /etc/oratab |\ awk -F\: '{print $1}'|sort` ; do if ]; then echo echo "Please enter a... (19 Replies)
Discussion started by: edstevens
19 Replies

10. Shell Programming and Scripting

Stuck with menu in select

hi i am new to bash scripting .. i created a bunch of folders but only want the folder names with file1. so i go in and make an array to grab the folders the put in a file then i strip the directories so i just have the folder names i need then i would like to make the menu with a selection... (3 Replies)
Discussion started by: lamby22
3 Replies
All times are GMT -4. The time now is 05:38 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy