Visit Our UNIX and Linux User Community


Making a KSH exit if path is not correct


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Making a KSH exit if path is not correct
# 1  
Old 07-30-2009
Making a KSH exit if path is not correct

I am very green to shell programming and have no training and this is my first real attempt. I am fairly versed in Unix and running the cmds I need. I tried using the search feature but most of what I found was close but not quite what I am looking for, plus most looked more advanced than I understand. Basically I am trying to automate a process for our support team to pass two parameters to my script, the first specifies which directory it needs to reside. My problem is if they put the wrong dir then I want it to fail, as it stands now I can put anything in and it just runs through to completion and does what it can. Posting my very simple rudimentary code below.

#! /usr/bin/ksh
set -x
host=`hostname`
pk=agent_$host
#This will put user in Tidal Directory#
cd /opt/$1/Agent
##################################################
# This Will Tar all agent logs#
tar -cvf $pk.tar *
##################################################
# This Will gzip agent logs
gzip $pk.tar
##################################################
# This will move file out of agent dir to /tmp to not fill filesystem#
mv $pk.tar.gz /tmp
##################################################
# This will stop and start the agent#
cd /opt/$1/Agent/bin
tagent tidal_agent_$2 stop
sleep 30
####################################################
# tagent tidal_agent_1 start
# This will send mail letting us know agent was restarted#
#####################################################
( echo Agent $host has been restarted )| mailx -s "Logs have been tared on Agent `$host'`" clintbateman@comcast.net
exit
# 2  
Old 07-30-2009
Hi.

You can test for the directory using something like:

Code:
if [ ! -d /opt/$1/Agent ]; then
  echo "Directory does not exist"
  exit 1
fi

First you should check the you have all the arguments you need:

Code:
if [ $# -ne 2 ]; then
  echo "Usage:  ......."
  exit 0
fi

# 3  
Old 07-30-2009
Code:
if [[ ! -d /opt/$1/Agent ]] ; then
  echo "bad parameter: directory /opt/$1/Agent not found."
  exit 1
fi

Is that what you need?
# 4  
Old 07-30-2009
Thank you both, exactly what I needed, I need something for $2 also but I think I can figure it out with this.

---------- Post updated at 09:07 AM ---------- Previous update was at 08:53 AM ----------

Ok maybe one more.

# This will stop and start the agent#
cd /opt/$1/Agent/bin
tagent tidal_agent_$2 stop
sleep 30

If $2 is passed incorrectly I would get this message running the command

*** Agent Instance not defined in the ini file

How could I also make it exit if my process does not start?
# 5  
Old 07-30-2009
Quote:
Originally Posted by htown71
How could I also make it exit if my process does not start?

I don't know anything about your agent, but does it return a non-zero exit code after you start or stop it and there's an error?

Code:
tagent tidal_agent_$2 stop
if [ $? -ne 0 ]; then
  echo "Error stopping agent $1"
  exit 2
fi

# 6  
Old 07-30-2009
No it only gives the output

*** Agent Instance not defined in the ini file

It does not pass a return code
# 7  
Old 07-30-2009
Code:
tagent tidal_agent_$2 stop 2 >&1 | grep -q 'Agent Instance not defined in the ini file'
if [[ $? -ne 0 ]] ; then
   echo "agent start failed"
else
   echo "agent started"
fi


Previous Thread | Next Thread
Test Your Knowledge in Computers #440
Difficulty: Medium
The term "GPU" was coined by Nvidia in 1994.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Send correct exit code from child script back to parent

Hello all; hope someone can help me cause I am going crazy trying to find a solution for (what I think is simple) issue...looked hard up and down this forum and tried several "solutions" with no avail...so here's my issue: I have this (parent) script: copylsofdcmcadefttosftpwithmove.sh ... (3 Replies)
Discussion started by: gvolpini
3 Replies

2. UNIX for Dummies Questions & Answers

Getting correct path to run appropriate script

I have tcsh scripts on path /home/chrisd/tatsh/trunk/hstmy/bin/tcsh/ I want to run the script from within another script. Suppose I go to directory /home/chrisd/tatsh/trunk/hsdata/n02/terr0.25/darwin and want to run checksrdist.tcsh So I do cd ... (1 Reply)
Discussion started by: kristinu
1 Replies

3. Shell Programming and Scripting

KSH: Confused with behaviour of exit

Hi Everyone, I am confused on why the below snippet of code is not working as I intend it to do. I have googled and confirmed that "exit" is supposed to abort the execution of the script regardless if the exit was called from inside a function, or the main body of the script. log_and_die() { ... (3 Replies)
Discussion started by: maddmaster
3 Replies

4. Shell Programming and Scripting

Exit if date not in correct format

Can somone take a look at this script for me - I'm trying to get it to exit if the format of dateToLookFor is not in the format YYYYMMDD: function search { cd $logsloc echo "Enter date in format YYYYMMDD (enter to exit):" read dateToLookFor echo $dateToLookFor | grep -q ... (2 Replies)
Discussion started by: rich@ardz
2 Replies

5. Shell Programming and Scripting

Terminal is closing on exit in ksh

hi while executing the following script, my terminal window is getting closed if I enter a invalid option. I want the script should go back the the command prompt. how to do achive it. i execute the script as . ./test #! /usr/bin/ksh Printf " Type of Installer : \n\t\t 1. Whole Build... (3 Replies)
Discussion started by: vij_krr
3 Replies

6. Shell Programming and Scripting

KSH: Test telnet and exit

Hi, I need to do a test Telnet in KSH and if the connection is good then disconnect the telnet session with out logging in and without exiting the shell script. Example output of a good connection: $telnet xxx.xx.xx.xxx xxxx Trying xxx.xx.xx.xxx... Connected to xxx.xx.xx.xxx. Escape... (1 Reply)
Discussion started by: calex
1 Replies

7. UNIX for Dummies Questions & Answers

Cannot retreive correct $PATH using PLINK

Hi, I'm using plink to execute shell script on UNIX machines. It works pretty well excepted with some machines where I don't have the same $PATH than with putty. I'm using the command PLINK.EXE -ssh machinename -l user -pw password echo $PATHAnd for putty nothing special set, I use ssh as... (2 Replies)
Discussion started by: Peuj
2 Replies

8. Solaris

Correct me to run a sh file in ksh shell!

Hi all! I wrote a file named as rman_backup.sh, and this is contents #!/bin/ksh ORACLE_SID=VNP;export ORACLE_SID echo $ORACLE_SID echo "Please Specify the kind of backup you want to take" echo "1) LEVEL 0 VNP" echo "2) LEVEL 1 VNP" echo "3) EXPORT BACKUP" echo "Enter your option" ... (4 Replies)
Discussion started by: trantuananh24hg
4 Replies

9. UNIX for Advanced & Expert Users

How to exit the KSH functions

Hi I am having the script which contains more functions. I want to exit the function if any failure. I tried with exit - the session itself is getting logged out. How can i fix this issue? (11 Replies)
Discussion started by: sharif
11 Replies

10. Programming

Exit Code in HP-UX KSH.

In one of my programs another process is called using the system command e.g. lv_error = system("myproc"); where lv_error is declared as an int. myproc would be returning 0 for success and 1 for failure. e.g. if (success) { return(0); }else{ return(1); } When the return code... (3 Replies)
Discussion started by: mbb
3 Replies

Featured Tech Videos