Whats wrong in the Function ?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Whats wrong in the Function ?
# 22  
Old 10-05-2010
Close! Keep main together, save fork and exec, export is a good habit, spelling, order, usual form, errors to stderr, fewer echo, indent dependent code:

Code:
#/usr/bin/ksh

########### Subroutines

function usage(){
        echo "
Usage: ${SCRIPT_NAME} <OPTION> <SERVICE_NAME>

<OPTION> 
    <-L | -l>    = Searching from the LIVE LOGS.
    <-A | -a>    = Searching from the ARCHIVE LOGS.
<SERVICE_NAME>   = Valid SERVICE_NAME that exists in 76S DIR.
" >&2

}

########## MAIN

export SCRIPT_NAME=${0##*/}

if [ $# != 2 ]; then
  usage
  exit
fi

# 23  
Old 10-06-2010
Quote:
Originally Posted by raghunsi
Change the code.
Do you understand the term 'copy-paste'? That is not the code given to you in post 12. All your attempts to rearrange it have broken it. Try the code given to you in post 12 as-is, not your rewriting of it. Everyone's been screaming at you to try it for days!
# 24  
Old 10-06-2010
Quote:
Originally Posted by Corona688
Do you understand the term 'copy-paste'? That is not the code given to you in post 12. All your attempts to rearrange it have broken it. Try the code given to you in post 12 as-is, not your rewriting of it. Everyone's been screaming at you to try it for days!
Note: exit in a function is just return, not exit of parent script with bad usage. This is why it is good to segregate functions, as they are almost sub-shells, and if you pipe where you call them, they may be subshells.

Good luck with those voices :-}
# 25  
Old 10-06-2010
Are you sure?
Code:
$ ( f() { echo 2 ; exit ; } ; echo 1 ; f ; echo 3 )
1
2

Code:
$ ( f() { echo 2 ; return ; } ; echo 1 ; f ; echo 3 )
1
2
3


Last edited by Scrutinizer; 10-07-2010 at 02:29 PM.. Reason: removed superfluous keyword "function"
# 26  
Old 10-07-2010
Quote:
Note: exit in a function is just return, not exit of parent script with bad usage. This is why it is good to segregate functions, as they are almost sub-shells, and if you pipe where you call them, they may be subshells.
Scrutinizer is right. The "exit" gets you out of the entire script, which is exactly what you want if you have bad parameters. A "return" finishes a function without having to drop through to the last line of the function.
# 27  
Old 10-07-2010
Quote:
Originally Posted by methyl
Scrutinizer is right. The "exit" gets you out of the entire script, which is exactly what you want if you have bad parameters. A "return" finishes a function without having to drop through to the last line of the function.

I stand corrected, but I swear I used to have a ksh that did not exit inside functions, just returned!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Python - Function print vs return - whats wrong

All, I have a basic buzz program written in python with return function. If i change return with print,it works fine but i want to know whats wrong with return statement.Can anyone help me whats wrong with this #!/usr/bin/python def div4and6(s,e): for i in range(s,e+1): if... (5 Replies)
Discussion started by: oky
5 Replies

2. UNIX for Dummies Questions & Answers

Whats wrong with this if-else

hi whats wrong in below?? CHECK=M10; if ; then echo "hello hi"; else echo "how are u hello hi"; fi I am getting error as ./test.sh: line 2: ' ./test.sh: line 2: M10: command not found ./test.sh: line 2: M10: command not found ./test.sh: line 2: M10: command not found (8 Replies)
Discussion started by: skyineyes
8 Replies

3. Programming

Whats wrong with my my Makefile

its right only missed \ (0 Replies)
Discussion started by: dragonpoint
0 Replies

4. Homework & Coursework Questions

Whats wrong with the following

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: ls -ld htdocs drwxr-x--- 3 root root 8192 2006-11-19 10:41 htdocs How would a host administrator... (1 Reply)
Discussion started by: Larry_1
1 Replies

5. UNIX for Dummies Questions & Answers

whats wrong with this?

can anyone tell me why this code doesn't work how its supposed to, its the hangman game but it doesn't play how its supposed to #!/bin/bash NoAttempts="0" livesgiven="5" LivesRemain=$livesgiven LettersAttempted="" wordfile=words numwords=0 function menu() { clear cat << menu... (1 Reply)
Discussion started by: ferrycorsten73
1 Replies

6. UNIX for Dummies Questions & Answers

Whats wrong in the script?

if then if then echo "fst argument is $1 " else if then "fst argument is $1" fi fi fi Can anyone tell me. My requirement is tht pass a string .. Check whether it contains "-". If yes then check if it... (1 Reply)
Discussion started by: nehagupta2008
1 Replies

7. Shell Programming and Scripting

tell me whats wrong with this

#! /bin/bash USAGE=" | ] if then echo "$USAGE" exit 1 fi while getopts lb: OPTION do case $(OPTION)in a) echo Hi there! exit 2;; b) echo hello o) OARG=$OPTARG;; \?)echo "$USAGE" ;; exit 2;; esac done shift `expr... (1 Reply)
Discussion started by: nadman123
1 Replies

8. Shell Programming and Scripting

tell me whats wrong in this?

#! /bin/bash head -5 $1 echo "remove $1 ?" read answer if then echo invalid answer elif rm $1 echo "$1 is deleted" elif then echo file is not deleted else echo "invalid answer" fi What i really want this to do is to ask to delete the file or not..it says something wrong... (1 Reply)
Discussion started by: nadman123
1 Replies

9. UNIX for Advanced & Expert Users

Whats wrong in this Script ???

PATH="/clocal/mqbrkrs/user/mqsiadm/sanjay" MAIL_RECIPIENTS="xyz@abc.com" Subject="File accessed in last minutes:" find $PATH -type f -amin -1 > temp.txt.$$ cat temp.txt.$$ | \ while read line do fuser -uV $line >> tempmail.txt done cat "$tempmail.txt" | mailx -s "$Subject"... (4 Replies)
Discussion started by: varungupta
4 Replies

10. Shell Programming and Scripting

Whats wrong with my function?? <newbie>

First of all im using Bash, on a Debian-based machine. I tried to write a function that if the ls program found listed more than 25 lines I would automaticly use "ls | less". Its on another computer but if I recall it looked something like this... Note: some code may look strange because im on... (4 Replies)
Discussion started by: riwa
4 Replies
Login or Register to Ask a Question