Beginner Question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Beginner Question
# 1  
Old 04-19-2011
Beginner Question

Hello,

I am new to shell scripting. I have a question I would greatly appreciate any suggestions on. I am writing a ksh script that will launch bin files. The files are owned root and the application runs under root. The application administrators do not get root access. The script is intended to launch one of 7 guis. The script will execute with root privileges. The section of the script I having difficulty with is below.

Code:
# Specify console to be run
tries=0
limit=3
finished=0

        echo "Please specify one of the following:
                cfgwiz for the Configuration Wizard
                diag for Diagnostics and Performance Logging
                connectwiz the Connectivity Wizard
                licmgr for the License Manager
                odbcadx for the ODBC Administrator
                svcmgr for the Service Manager
                testodbc for the ODBC Test Tool"


while [ ${finished} -eq 0 ] && [ ${tries} -lt ${limit} ]; do
    
    echo "Specify the executable you would like to run and press Return: "
       read console

    tries=`expr ${tries} + 1`

        if [ -f /path/to/bin/files/$console ]; then
            /path/to/bin/files/$console
        
        finished=1
    
        else
        
        echo "Invalid selection. Please try again."
        fi

done

# Terminate script after three invalid entries.

    if [ ${tries} -ge ${limit} ]; then
        echo "Too many failed attempts. Terminating script."
        return 1
    else
        return 0
    fi

exit 0

The above works fine (though I am sure there are more elegant ways to do it). I am attempting to add a case for if the users selects "diag". If they do select diag, I would like to execute the code below. If they select any of the other six, I would like to bypass the code below.
Code:
        if [ ${console} = "diag" ]; then  #specify log file if doing diagnostics.
            echo "Please enter the name of your destination logfile."
            echo "The log file you specify will be in the same location as the Application log."
            read -t 90 logfile
                touch /logs/path/${logfile}
                chown `whoami`:staff /logs/path/${logfile}
                chmod 775 /logs/path/${logfile}
         else
                    echo "Too much time has elapsed. Terminating script."
                    exit 1
          fi

I have tried several if/elif and case statements, but I cannot get the script to work correctly. It errored out with some and with others it prompted for $logfile when any of the bin files were selected; I only want that option for "diag".

Any suggestions would be appreciated. Thanks for your help.
# 2  
Old 04-20-2011
First, read man execvp and properly show the interpreter in a first line "#!path-to-interpreter".

You have the question in the loop, but nothing in the loop changes. 'read -t' expiring does not relate to 'else', the else clause is not needed. You can just put this bit first and continue in your if so the following code is unreachable for diag.
This User Gave Thanks to DGPickett For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Beginner Bash Scripting Question

Hello, I am new to Linux and studying to become a Unix System Admin. I am taking a course in which I was practicing creating a bash script to ping a particular IP address. The script can be found below: #/bin/bash echo "Enter the IP address" read ip if then ping -c 1 $ip if ;... (3 Replies)
Discussion started by: shah9250
3 Replies

2. Shell Programming and Scripting

C shell - a question of a beginner

Hi, can someone explain how this aliases work: alias m 'if ( \!:$ =~ *gz) set status = 1 && most \!:$ || gzcat \!:1 | most ' I mean, I know what it does, but I don't know how - what is \!:$ and \!:1 - how do it used the && and || - what it does with status variable? thanks (3 Replies)
Discussion started by: tzvikao
3 Replies

3. Shell Programming and Scripting

Beginner Question about 2 specific functions

My professor has given me a couple of functions that I am to use to accomplish the task of replacing spaces in file and/or directory names with hyphens. (i.e. A B/C D/E F and you want to rename that to A B/C D/E-F would be an example of changing the file and leaving the directories) These are... (1 Reply)
Discussion started by: Skittlybop
1 Replies

4. Shell Programming and Scripting

pls help kinda difficult question for a beginner

1. Create a directory script (project_dir.sh) · Write a script in your home directory to create a subdirectory called “PROJECT<99>” within your home directory on the Ubantu/Linux server. <99> is your project number (e.g. 01,02,03, ... 15). · The script must test whether... (1 Reply)
Discussion started by: bugenhagen_
1 Replies

5. Shell Programming and Scripting

sed beginner question

Hello, I am processing data. In the first column there is the date ("2011 02 03 12 45") separated by space and follow I have the measurements.I have several days in one file. What I would like to do is: to read the data line by line and write the data of "today" in a new file and "yesterday" as... (13 Replies)
Discussion started by: jurgen
13 Replies

6. Shell Programming and Scripting

sed beginner question

hi and sorry for crossposting... I have data, the first column is the date ("2011 02 03 12 45") and follow I have the measurements . What I would like to do is: to read the data line by line and write the data of "today" in a new file and "yesterday" as well in another file, separated by... (2 Replies)
Discussion started by: jurgen
2 Replies

7. Shell Programming and Scripting

beginner's question

i write a shell program and i execute that after i made a bin directiry in my home directory(i didnt give any permissions) now i change to other directory.then i execute it bit it is saying " no such a file or directory" can any one help me please (2 Replies)
Discussion started by: wkbn86
2 Replies

8. Shell Programming and Scripting

Beginner Shell Programming Question

Hello all, I am currently try to learn the linux operating system as well as some bash programming. I have come across some online course work which has been very helpful, I have been working through some assignments and since I have no teacher to ask I have come to you experts. So the... (6 Replies)
Discussion started by: g2axiom
6 Replies

9. UNIX for Dummies Questions & Answers

beginner redirect question

How can I redirect all stdout and stderr messages from a command to /dev/null (or to a file if need be) except messages that start with the word 'foo'? Messages that start with 'foo' need to be displayed in real time (i.e., when they are sent to stdout/stderr by the command). Thanks. (5 Replies)
Discussion started by: darwin_886
5 Replies

10. UNIX for Dummies Questions & Answers

A beginner for cygwin simple question

the current pwd is: c:\cygwin\home\hui which command can go to c:\documents and setting\hui\my documents\hui\reply.txt (1 Reply)
Discussion started by: zhshqzyc
1 Replies
Login or Register to Ask a Question