How to execute functions or initiate functions as command line parameters for below requirement?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to execute functions or initiate functions as command line parameters for below requirement?
# 1  
Old 01-28-2013
How to execute functions or initiate functions as command line parameters for below requirement?

I have 7 functions those need to be executed as command line inputs, I tried with below code it’s not executing function. If I run the ./script 2 then fun2 should execute , how to initiate that function I tried case and if else also, how to initiate function from command line


Code:
if [ "$VAL" == "1" ]
then
fun1
elif [ "$VAL" == "2" ]
then
fun2
elif [ "$VAL" == "3" ]
then
fun3
elif [ "$VAL" == "4"]
then
fun4
elif [ "$VAL" ==" 5" ]
then
fun5
elif [ "$VAL" == "6" ]
then
fun6
elif [ "$VAL" == "7" ] then
fun7
else
echo -e "Invalid input.............\n"
Help
  exit
fi


OR

Code:
case "$VAL" in
 "1")
    fun1
    ;;
 "2")
    fun2
    ;;
 "3")
    fun3
    ;;
 *)
    echo -e "Invalid input.............\n" 
    ;;
 esac


Last edited by Scrutinizer; 01-28-2013 at 09:48 AM.. Reason: code tags
# 2  
Old 01-28-2013
The first argument specified to the script will be stored in the first positional parameter - $1

How are you populating the value of $VAL?
# 3  
Old 01-28-2013
How to initiate the function Smilie, check how simple functions should work for your choosen inputs
Code:
#!/bin/sh
fun1(){
echo " i am in fun-1"
}
fun2(){
echo " i am in fun-2"
}
fun3(){
echo " i am in fun-3"
}
echo "please input your value"
read var
case $var in
1)fun1;;
2)fun2;;
3)fun3;;
*)echo "pleaes input the correct values"
esac

# 4  
Old 01-29-2013
my requirement is below :

If i excecute script like below it should take view name as a command line parameter and
execute 2 function of the script .please suggest if logic is not correct .

Code:
./script saku 2

Code:
 
#!/bin/bash
 
PARAMETER=$#
VIEW_NAME=$1
 
Help()
{
  echo "Usage:"
  echo "./build <view-name> <Val > "
  echo " "
}
 
 
label=cleartool lsstream -fmt "%[found_bls]NXp\n" -view $VIEW_NAME
echo -e "\n"
 
read $Val
 
case $Val in
  "1")
    fun1
    ;;
  "2")
    fun2
    ;;
  "3")
    fun3
    ;;
  *)
    echo -e "Invalid input.............\n"
    Help
    ;;
esac
 
 
fun1()
{
  cleartool diffbl -ver -pred $label
}
fun2()
{
  cleartool diffbl -activities -pred $label
}
fun3()
{
  cleartool diffbl -ele -pred $label
}
 
 
check_parameters()
{
  if [ "$PARAMETER" == "2" ]
  then
    existing_baseline
  elif [ "$PARAMETER" == "1" ]||[ "$VIEW_NAME" == "help" ]
  then
    Help
  else
    Help
  fi
}
 
clear
check_parameters

Moderator's Comments:
Mod Comment I don't know which part of "Please Use Code Tags" you're not comprehending, but this is the last time I will add them for you.

Last edited by Scrutinizer; 01-29-2013 at 06:01 AM.. Reason: Code tags; extra code tag
# 5  
Old 01-29-2013
A quick scan:
  • function existing_baseline is not defined
  • $2 is not assigned to $Val. Instead there is a separate read operation that asks for the user's input
  • The parameters are checked after the functions are called.
  • The assignment to the variable $label is syntactically incorrect.

--
BTW did you read Scott' s warning on code tags?
# 6  
Old 01-29-2013
Code:
#!/bin/bash

PARAMETER=$#
VIEW_NAME=$1

Help()
{
echo "Usage:"
echo "./build <view-name> <Val > "
echo "        "
}

check_parameters()
{
if [ "$PARAMETER" == "2" ]
then
existing_baseline
elif [ "$PARAMETER" == "1" ]||[ "$VIEW_NAME" == "help" ]
then
Help
else
Help
fi
}


existing_baseline()
{
label=`cleartool lsstream -fmt "%[found_bls]NXp\n" -view $VIEW_NAME | sed 's/,/\n/g' 
}

fun1()
{
cleartool  diffbl -ver -pred  $label
 }
fun2()
{
cleartool  diffbl -activities -pred $label 
}
fun3()
{
cleartool  diffbl -ele -pred  $label
 }

case $Val in
 "1")
   fun1
    ;;
 "2")
   fun2
    ;;
 "3")
    fun3
   ;;
 *)
    echo -e "Invalid input.............\n" 
	Help
    ;;
 esac
 


clear
check_parameters

i have updated my code still not getting how the script will execute 2 nd function for below command

./script saku 2
# 7  
Old 01-29-2013
I see you addressed the first and last point but not nrs. 2 and 3. Also, $label does now get initialized from "check_parameters" after the case statement for the fun[123] function calls
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Python passing multiple parameters to functions

Hi, I am a beginner in python programming. In my python script have a main function which calls several other functions. The main function gets its input by reading lines from a input text file. I call the main function for every line in input text file through a loop. def main(line): var1... (6 Replies)
Discussion started by: ctrld
6 Replies

2. Shell Programming and Scripting

Pass parameters to a function and running functions in parallel

Hi , I have a script which is using a text file as I/P. I want a code where it reads n lines from this file and pass the parameters to a function and now this script should run in such a way where a function can be called in parallel with different parameters. Please find below my script, it... (1 Reply)
Discussion started by: Ravindra Swan
1 Replies

3. Shell Programming and Scripting

Help in retrieving the ending line numbers of the functions

Hi! I've a C file which consist of many function definitions with numbers at the beginning as shown below.. 10 void search() 11 { 12 /*body 14 * 15 * 17 * 18 * 40 * 42 * 60 } 90 void func_name() 95 { 99 /*body 100 * 105 * 111 * (7 Replies)
Discussion started by: abk07
7 Replies

4. Shell Programming and Scripting

howto place in one line output from two functions

Hi I would like to place in one line output from two functions. Both functions return text with print cmd. When I place above code in script it will place them in series. e.g. 1 #/bin/ksh 2 3 function1() 4 { 5 print "My name is" 6 ... (3 Replies)
Discussion started by: presul
3 Replies

5. Shell Programming and Scripting

Handling parameters in Shell Functions

Hi, Please help me with the below situation where I have to handle the parameters passed to a function in a unique way. Below is the code, which I am trying to execute. I basically want to pass the parameter to a function, where I am trying to get user input into array(s). I want to name... (7 Replies)
Discussion started by: bharath.gct
7 Replies

6. Shell Programming and Scripting

CSH: Concatenating Strings, how to add new line character and functions?

Hello, I'm trying to run a program on a directory (traverse sub dirs too) through my csh script. Arrays support in CSH is appalling, something like associative arrays would have helped me do this so much easier. Anyway, I want to hold some details extracted from the program and then at the... (0 Replies)
Discussion started by: ragabonds
0 Replies

7. Shell Programming and Scripting

Get the List of functions with modified parameters

Hi I have 2 files a.c and a.bak where I changed long to int using awk script. I want to get the list of functions whose parameters got modified for eg: fun ( long a, long b ) might be changed to fun ( int a, int b ) (1 Reply)
Discussion started by: Sivaswami
1 Replies

8. Shell Programming and Scripting

functions in

hi could anybody please suggest me how to put a function memory for particular user. say i am a user rao. want have a function foo in memory . i have done this .typed the function function in the shell it worked for the session.but next time i do login its not there . i can i have a... (6 Replies)
Discussion started by: Raom
6 Replies

9. Shell Programming and Scripting

passing command line parameters to functions - sh

All, I have a sh script of the following tune: function a () { #functionality.. } function b () { #functionnlity.. } function check () { # this function checks for env and if all fine call build } function usage () { #sh usage details } function build () { #calls either a or b or... (5 Replies)
Discussion started by: vino
5 Replies
Login or Register to Ask a Question