How to pass two word parameter


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to pass two word parameter
# 1  
Old 08-15-2012
How to pass two word parameter

Hi,
How to pass parameter to run folloing script?
Code:
#parameters are div, dept, style
U run_convert_pdm.ksh Mens 44 7542
U run_convert_pdm.ksh "Mens Knit" 44 7541

The first command works fine but the second needs to have two words together , it does not work even if
I have used double quotes and single quotes.

Thanks
Sandy

Moderator's Comments:
Mod Comment Please view this code tag video for how to use code tags when posting code and data.

Last edited by sandy162; 08-15-2012 at 12:00 PM.. Reason: code tags
# 2  
Old 08-15-2012
We need to see what the code (run_convert_pdm.ksh ) does with the parameter.
Please post that section of the code.

What do you mean by 'does not work?'. Can you give us sample bad and good output please?
# 3  
Old 08-15-2012
Double quotes work. If they don't, something is splitting them later. Show the code of the script.
# 4  
Old 08-15-2012
Thanks for reply.

Code:
$ORACLE_HOME/bin/sqlplus ${USER}/${PASSWD}@${SID} >>./run_convert_pdm_${DEPT}.log <<EOC
whenever sqlerror exit 1
execute CNVT_SUMMARY('${DIV}','${DEPT}','${STYLE}');
EOC

this is error when ran using double quotes
Code:
**ERROR** with UNIX cmd/script [run_convert_pdm.ksh]

# 5  
Old 08-15-2012
That cannot be the entire script. It doesn't use positional parameters at all. Please show the entire script.

You nearly got code tags to work. Smilie They don't use {} though. It's actually [code]stuff[/code] without the extra spaces in the tags.

Last edited by vgersh99; 08-15-2012 at 12:27 PM.. Reason: [noparse] for the code tags
# 6  
Old 08-15-2012
Sorry about that , please find the entire script
Code:
#!/usr/bin/ksh
# run_convert_pdm.ksh
#
USER=$1; export USER
PASSWD=$2; export PASSWD
SID=$3; export SID
PDM_DB=$4; export PDM_DB
OWNER=$5; export OWNER
DIV=$6; export DIV
DEPT=$7; export DEPT
STYLE=$8; export STYLE
if [ -z "$8" ]; then
echo " **ERROR** $0 - 8 arguments not provided!"
echo " Usage: $0 userid, password, database, pdm db link, owner, div, dept, style"
exit 1 # failure
fi
rm ./run_convert_pdm_${DEPT}.log
echo "**************** $(date +%c) Summary ${DEPT} ****************" >> ./run_convert_pdm_${DEPT}.log
$ORACLE_HOME/bin/sqlplus ${USER}/${PASSWD}@${SID} >>./run_convert_pdm_${DEPT}.log <<EOC
whenever sqlerror exit 1
execute CNVT_TP_SUMMARY('${PDM_DB}', '${OWNER}','${DIV}','${DEPT}','${STYLE}');
EOC
if [ $? -eq 1 ]; then
echo "Error in the stored procedure CNVT_TP_SUMMARY";exit 1
fi
exit 0

the parameters are db information related so I omitted before posting
Code:
U run_convert_pdm.ksh abc desf dev sdv XYZ "Mens Knit" 44 7542


Last edited by sandy162; 08-21-2012 at 10:00 AM..
This User Gave Thanks to sandy162 For This Post:
# 7  
Old 08-15-2012
You should quote the variables in question.

Code:
#!/usr/bin/ksh
# run_convert_pdm.ksh
#
# Using SQL*Plus anaymous block to call a stored procedure
#
#
# This script is called with 8 params: userid, password, database, pdm db link, owner, div, dept
# access to TSS target - (user passwd sid) must be provided.
USER="$1"; export USER
PASSWD="$2"; export PASSWD
SID="$3"; export SID
PDM_DB="$4"; export PDM_DB
OWNER="$5"; export OWNER
DIV="$6"; export DIV
DEPT="$7"; export DEPT
STYLE="$8"; export STYLE
if [ -z "$8" ]; then
echo " **ERROR** $0 - 8 arguments not provided!"
echo " Usage: $0 userid, password, database, pdm db link, owner, div, dept, style"
exit 1 # failure
fi
rm ./run_convert_pdm_"${DEPT}".log
echo "**************** $(date +%c) Summary ${DEPT} ****************" >> ./run_convert_pdm_"${DEPT}".log
$ORACLE_HOME/bin/sqlplus ${USER}/${PASSWD}@${SID} >>./run_convert_pdm_"${DEPT}".log <<EOC
whenever sqlerror exit 1
execute CNVT_TP_SUMMARY('${PDM_DB}', '${OWNER}','${DIV}','${DEPT}','${STYLE}');
EOC
if [ $? -eq 1 ]; then
echo "Error in the stored procedure CNVT_TP_SUMMARY";exit 1
fi
exit 0

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to pass parameter to bteq?

I am using below code to connect terdata and getting the query result in a file.Now i want to use same code for different tables,plz tell me how to pass table name as parameter.i tried using as below code but not working. bteq < /download/viv/dev/ops/Scripts/ter.sh FLTORGTKR_ORG_etc.. ... (1 Reply)
Discussion started by: katakamvivek
1 Replies

2. Shell Programming and Scripting

Pass parameter

Hi, I have following for loop , please let me know how to get ${TXP_EXT_TABLE_${i}_SQL} parameter with 1DAY and 7DAY values. for i in 1DAY 7DAY do ${NZSQL_DIR}/nzsql -h ${HOST} -time -v ON_ERROR_STOP=1 -f ${SQL_DIR}/${TXP_EXT_TABLE_${i}_SQL} > ${TMP_LOG_FILE} 2>&1 done ... (4 Replies)
Discussion started by: sandy162
4 Replies

3. Shell Programming and Scripting

pass parameter to SED

My script(ksh) works fine for --------------------------------------------------- sed -n '28,31p' ${l_name} >> ${LOG_DIR}/Email.txt --------------------------------------------------- But I wand to pass parrmeter to this syntax I did the following things ... (14 Replies)
Discussion started by: deep_kol
14 Replies

4. UNIX for Dummies Questions & Answers

How to pass the parameter value to a... ?

Hello I have a simple code like this one: #!/bin/ksh VER=$1 cat /usr/text | while read line do echo $line done Let's say $1=1.0.0 and the contents of text is: abcd.cfg asdf I would like the output to be like this abcd1.0.0.cfg asdf1.0.0 I am thinking of passing the... (5 Replies)
Discussion started by: khestoi
5 Replies

5. Shell Programming and Scripting

pass parameter to function

HI all I have a code like ############################################## minyear() { curryear=$1 echo $curryear } ##Main Program ## minyear exit ####### when i execute "sh scriptname 2005" output should be like 2005 but the output is blank. I guess i need to pass parameter to... (3 Replies)
Discussion started by: vasuarjula
3 Replies

6. UNIX for Dummies Questions & Answers

How to pass parameter to subroutine

I have something like cp -p <dir>filename1.dat <dir2>filename1.dat there are many other operations in it I mean that filename1.dat will keep on changing I need to write a subroutine so that i can pass filename1 or 2 or 3 .dat as parameter Thanking you in advance Any help wuld be appreciated (2 Replies)
Discussion started by: ssuresh1999
2 Replies

7. Shell Programming and Scripting

How to pass a parameter

Hi all, How to pass a parameter from a oracle pl/sql procedure parameter to shell environment and use it? (1 Reply)
Discussion started by: megh
1 Replies

8. Shell Programming and Scripting

Pass parameter into script

I would like to write a scirpt a.sh that it first checks the first parameter of the input. If it fulfill some condition ,then run an executable program b by using all the parameter. ie. > ./a.sh 10 20 30 40 50 Then a.sh first checks the first parameter, 10, if it mathes the requirement, then... (2 Replies)
Discussion started by: alfredo
2 Replies

9. UNIX for Dummies Questions & Answers

Pass Parameter to Another Script

I have a piece of code that I do not want to continuously repeat. I want to call script2 from script1 and pass a parameter. Here is an example: Script1: ....... nohup ./Script2 PARAMETER ....... Script2: if # Checks if any params. then echo "No parameters passed to function." ... (4 Replies)
Discussion started by: rvprod
4 Replies
Login or Register to Ask a Question