Visit Our UNIX and Linux User Community


Parameter Passing problem


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parameter Passing problem
# 1  
Old 07-22-2009
Parameter Passing problem

Hi All,

I developed a KSH script which will accept two parameters as input. These two parameters are some directories paths.

In the script i am validating the number of paramaters it received as below
#--------------------------------------
# Check Command line arguments
#--------------------------------------
if [ ${#} -ne 2 ]
then
echo " ${NOW} ${ScrName} : Invalid Parameter list..."
echo " ${NOW} ${ScrName} : Script needs TWO parameters"
echo " ${NOW} ${ScrName} : Param1--Input file path"
echo " ${NOW} ${ScrName} : Param2--Output file path"
exit 1
fi

and i am calling my script as
sh Script Name /home/raamch/work/infile /home/raamch/work/infile

script is giving the error as
+ [ 1 -ne 2 ]
+ echo Wed Jul 22 04:42:27 CDT 2009 SELUPDFLE.sh : Invalid Parameter list...
Wed Jul 22 04:42:27 CDT 2009 SELUPDFLE.sh : Invalid Parameter list...
+ echo Wed Jul 22 04:42:27 CDT 2009 SELUPDFLE.sh : Script needs TWO parameters
Wed Jul 22 04:42:27 CDT 2009 SELUPDFLE.sh : Script needs TWO parameters
+ echo Wed Jul 22 04:42:27 CDT 2009 SELUPDFLE.sh : Param1--Input file path
Wed Jul 22 04:42:27 CDT 2009 SELUPDFLE.sh : Param1--Input file path
+ echo Wed Jul 22 04:42:27 CDT 2009 SELUPDFLE.sh : Param2--Output file path
Wed Jul 22 04:42:27 CDT 2009 SELUPDFLE.sh : Param2--Output file path
+ exit 1


Even i tried the script calling as below
scriptname "path1" "path2"
scriptname "path1","path2"
scriptname 'path1' 'path2'

But no use.
script is not accepting the two parameters.

Please help me on how to pass directory paths as parameters to the KSH script.
# 2  
Old 07-22-2009
You are using ksh and call sh ?
If you like to use ksh, then
Code:
ksh script arg1 arg2

Your code works fine with every posix compatible sh, also with bsh.
I add some test echo:
Code:
if [ $# -ne 2 ]
then
 echo "$# , $*"
 echo " ${NOW} ${ScrName} : Invalid Parameter list..."
 echo " ${NOW} ${ScrName} : Script needs TWO parameters"
 echo " ${NOW} ${ScrName} : Param1--Input file path"
 echo " ${NOW} ${ScrName} : Param2--Output file path"
 exit 1
fi
echo "ok $1 and $2"

# 3  
Old 07-23-2009
My Shell is BASH.
If i issue echo $SHELL, it is giving as bash.

Then i called the script witk KSH as ksh script.sh. Even after also it is giving the same problem(same error messages).

Can any one please help?
# 4  
Old 07-23-2009
script looks ok to me. can you try passing 3 arguments and let us see.
# 5  
Old 07-23-2009
Publish your current version of your scripts. Also the command line, how you call your script. Easier to say what problem you have.
# 6  
Old 07-23-2009
Total script as below

#!/usr/bin/ksh
#####################################
# Starting the Main Script
#####################################
set -v on
set -x on
ScrName=`basename ${0}`
NOW=`date`
echo ${1}
echo ${2}
#
#-------------------------------------
# Routine for ERROR HANDLING
#-------------------------------------
#error_handle ()
#{
#echo "----------------------------------------->"
#echo "${NOW} ${ScrName} Error Handling...!"
#echo "----------------------------------------->"
#echo
#echo " ERROR Occured while ${1}"
#echo " EXIT from the program ......!"
#exit 1
#}
#--------------------------------------
# Check Command line arguments
#--------------------------------------
if [ $# -ne 2 ]
then
echo " ${NOW} ${ScrName} : Invalid Parameter list..."
echo " ${NOW} ${ScrName} : Script needs TWO parameters"
echo " ${NOW} ${ScrName} : Param1--Input file path"
echo " ${NOW} ${ScrName} : Param2--Output file path"
exit 1
fi

#--------------------------------------
# Get Log Directory
# and populate Log variables
#--------------------------------------
LogDate=`date "+%Y%m%d"`
LogDiry="${2}"
LogFile="${LogDiry}/SELUPD_${LogDate}.log"
#--------------------------------------
# Automatically Redirect STDOUT and STDERR to log file
#--------------------------------------
exec >${LogFile}
exec 2>${LogFile}

//////some logic
done
set -v off
set -x off
exit 0
#####END OF THE SCRIPT##########

i am calling the script as
sh script_name /home/user/work/infile /home/user/work/outfile

even i tried with the following calls
ksh script_name /home/user/work/infile /home/user/work/outfile
script_name /home/user/work/infile /home/user/work/outfile
./script_name /home/user/work/infile /home/user/work/outfile

but no use.

if i issue the command , echo $SHELL, it is giving the output as /usr/bin/bash.

I tried to login into ksh by issuing /usr/bin/ksh and called the script, but no use.
# 7  
Old 07-23-2009
Try to replace
Code:
set -v on
set -x on

set -v off
set -x off

by
Code:
set -v
set -x

set +v
set +x

Jean-Pierre

Previous Thread | Next Thread
Test Your Knowledge in Computers #643
Difficulty: Easy
From the beginning, the operating system of NeXTSTEP was built upon Mach/BSD.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing parameter more than 9

Hi, I've written a script where eleven parameter to be passed from command line which is inserting into an oracle table, it is working but the tenth and 11th parameter are not accepting as given it is referring to 1st parameter. HERE IS THE SCRIPT #!/bin/ksh #set -o echo $*... (4 Replies)
Discussion started by: sankar
4 Replies

2. Shell Programming and Scripting

Passing parameter to script, and split the parameter

i am passing input parameter 'one_two' to the script , the script output should display the result as below one_1two one_2two one_3two if then echo " Usage : <$0> <DATABASE> " exit 0 else for DB in 1 2 3 do DBname=`$DATABASE | awk -F "_" '{print $1_${DB}_$2}` done fi (5 Replies)
Discussion started by: only4satish
5 Replies

3. Programming

passing float parameter

I am surprised by GCC (this is ver. 4.2.4, Ubuntu 32 bit Intel) when a function declares a float parameter and it's prototype is missing, the parameters are messed up. Please see my code below: ~/test$ cat x1.c #include <stdio.h> #include <stdlib.h> set_p(int p1, float p2, int p3, int p4)... (7 Replies)
Discussion started by: migurus
7 Replies

4. Shell Programming and Scripting

Passing a parameter to AWK

Hi All, I am trying to pass a parameter to AWK on my KSH shell prompt as below. var1=2 echo $var1 awk -v var2=${var1} '{print var2}' testfile.txt I am passing the input file (testfile) to awk to get some o/p. It is having 10 records. When I run AWK, it is throwing the following errors... (1 Reply)
Discussion started by: Raamc
1 Replies

5. Shell Programming and Scripting

Positional parameter passing

Hi All, When passing parameters to a sheel script, the parameters are referenced by their positions such as $1 for first parameter, $2 for second parameter. these positional values can only have values ranging from $0-$9 (0,1,2,3...9). I have a shell script meant to accept 20 parameters. for... (3 Replies)
Discussion started by: ogologoma
3 Replies

6. Shell Programming and Scripting

Passing parameter in quotes

Hi, PW='/as sysdba'; export PW in other module I call sqlplus ${PW} (this line I unable to change!) How I can define PW so that sqlplus calls PW in quotes i.e sqlplus '/as sysdba' I tried like this PW="'/as sysdba'"; export PW - no luck Thanks in advance (2 Replies)
Discussion started by: zam
2 Replies

7. Shell Programming and Scripting

Passing asterisk As A Parameter

I have written a Shell Script Program which accepts 3 parameters as shown below: ./calc 20 + 2 in the above line ./calc is the Shell Script itself with 3 parameters, namely: 20 + and 2. Well, now let's look inside the Script: result=$1$2$3 echo $result The output will be as... (8 Replies)
Discussion started by: indiansoil
8 Replies

8. Shell Programming and Scripting

wrong parameter passing!

Hi all I have a script which will take input as filename and passes it to a java program. It is as follows -------------------------------- FILENAME=$1 echo $FILENAME ${JAVA_HOME}/bin/java -cp DateProvider $FILENAME ------------------------------------------------- when I execute the same... (2 Replies)
Discussion started by: malle
2 Replies

9. Programming

Passing parameter to makefile?

Hi, How to pass parameter to makefile? Please let me know if any one knows and also please put an example of makefile with this feature. thanks, Manju. (3 Replies)
Discussion started by: manju_p
3 Replies

10. Shell Programming and Scripting

parameter passing

Hallo everyone, This is my problem below: /home/cerebrus/pax=>vat class2.sh ksh: vat: not found /home/cerebrus/pax=>cat class2.sh #!/bin/ksh set -x bdf|grep appsdev|awk '{ print $5 }'> class3 dd={cat class3} echo $dd /home/cerebrus/pax=> /home/cerebrus/pax=>./class2.sh + bdf +... (8 Replies)
Discussion started by: kekanap
8 Replies

Featured Tech Videos