Need to get out of 2 variables in scripts


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Need to get out of 2 variables in scripts
# 1  
Old 07-24-2019
Need to get out of 2 variables in scripts

Hi All,

i have written below script, and out put i am looking for both variable PRIMARY_CONF and $STANDBY_CONF but i am getting below error
Code:
d1.sh: line 64: [: too many arguments
There is Eroro

------------------------------

line 64 is:
Code:
if  [ "$PRIMARY_CONF " = "PRIMARY "] -a  [ "$STANDBY_CONF " ="PRIMARY " ]; then

----------------------------------

please let me know where is the correction, as i am looking to met both using -a and condition
Code:
CURRENT_PRIM=ABC
CURRENT_COB=XYX
ECHO
PRIMARY_CONF=`srvctl config  -d $CURRENT_PRIM | awk -F: '/^Database role/ {match ($0, /[A-Za-z_]*PRIMARY[A-Za-z_]*/); print substr ($
0, RSTART, RLENGTH)}'`
echo $PRIMARY_CONF
echo
STANDBY_CONF=`srvctl config database -d $CURRENT_COB | awk -F: '/^Database role/ {match ($0, /[A-Za-z_]*PRIMARY[A-Za-z_]*/); print su
bstr ($0, RSTART, RLENGTH)}'`
echo $STANDBY_CONF
if  [ "$PRIMARY_CONF " = "PRIMARY "] -a  [ "$STANDBY_CONF " ="PRIMARY " ]; then
echo "Modified the DB $CURRENT_PRIM to $PRIMARY_CONF in cluster level but it will change after Datbase bounce During the  SWITCHOVER 
 Activty"
echo "Modified the DB $CURRENT_COB to  $STANDBY_CONF in cluster level but it will change after Datbase bounce During the  SWITCHOVER 
 Activty"
else
echo "There is ERROR"
exit


============================
Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules.

Last edited by Don Cragun; 07-24-2019 at 09:31 AM.. Reason: Add CODE and ICODE tags.
# 2  
Old 07-24-2019
Try consistently putting spaces around [, ], and =.
This User Gave Thanks to RudiC For This Post:
# 3  
Old 07-24-2019
Thank Rudic, that space issue is resolved, i have other issue now

Note:

CURRENT_PRIM is on node 1
CURRENT_COB is on node 2
here i am trying to get values into below variable from node 1 and node 2
PRIMARY_CONF from node 1 and STANDBY_CONF from node 2

i updated with script
Code:
set -x --to check the issue, so here i can see it is not taking values in STANDBY_CONF from if condition from scrip

below i got issue
Code:
+ '[' 'PRIMARY ' = 'PRIMARY ' -a ' ' = 'PRIMARY ' ']'
+ echo 'There is Eroro'
There is Eroro
+ exit


======================
please help.....

below is script

Code:
CURRENT_PRIM=ABC
CURRENT_COB=XYX
PRIMARY_CONF=`srvctl config database -d $CURRENT_PRIM | awk -F: '/^Database role/ {match ($0, /[A-Za-z_]*PRIMARY[A-Za-z_]*/); print substr ($0, RSTART, RLENGTH)}'`
echo $PRIMARY_CONF
#######CURRENT_COB  this DB lies node 2 and in node 1 is CURRENT_PRIM DB is there 
echo "Enter the COB  Hostname"
read "COB_HOST"
echo
echo "Connenting to COB HOST $COB_HOST"
ssh $COB_HOST << EOF
STANDBY_CONF=`srvctl config database -d $CURRENT_COB | awk -F: '/^Database role/ {match ($0, /[A-Za-z_]*PRIMARY[A-Za-z_]*/); print substr ($0, RSTART, RLENGTH)}'`
echo $STANDBY_CONF
#EOF

if  [ "$PRIMARY_CONF " = "PRIMARY " -a  "$STANDBY_CONF " = "PRIMARY " ]; then
echo "Modified the DB $CURRENT_PRIM to $PRIMARY_CONF in cluster level but it will change after Datbase bounce During the  SWITCHOVER  Activty"echo "Modified the DB $CURRENT_COB to  $STANDBY_CONF in cluster level but it will change after Datbase bounce During the  SWITCHOVER  Activty"
else
echo "There is Eroro"
exit
fi


Last edited by Don Cragun; 07-24-2019 at 09:38 AM.. Reason: Add CODE and ICODE tags.
# 4  
Old 07-24-2019
Anyone please help....
# 5  
Old 07-24-2019
I think your set -x gives pretty clear idea that "srvctl config database...." is not having any output. So $STANDBY_CONF is empty.
May be you want to check by running this command directly on command line and see why it's not showing any output.
This User Gave Thanks to balajesuri For This Post:
# 6  
Old 07-24-2019
Hi Bala,


srvctl config database -d $CURRENT_COB ---(which need to get output from node2 )
but i fire directly on node2
srvctl config database -d XYX ---- i am getting the output as below
PRIMARY

it is passing variable of $PRIMARY_CONF and but the not the $STANDBY_CONF
in the script it is passing the empty value in $STANDBY_CONF

Last edited by Don Cragun; 07-24-2019 at 09:42 AM..
# 7  
Old 07-24-2019
Quote:
Originally Posted by amar1208
Hi Bala,


srvctl config database -d $CURRENT_COB ---(which need to get output from node2 )
but i fire directly on node2
srvctl config database -d XYX ---- i am getting the output as below
PRIMARY

it is passing variable of $PRIMARY_CONF and but the not the $STANDBY_CONF
in the script it is passing the empty value in $STANDBY_CONF
You are setting PRIMARY_CONF in your shell script and your script is seeing the value that you are setting. You are setting STANDBY_CONF in a shell that you are running on COB_HOST; not in the shell execution environment of your script. Therefore, STANDBY_CONF has not been set in the current shell execution environment of your script.

Try changing:
Code:
ssh $COB_HOST << EOF
STANDBY_CONF=`srvctl config database -d $CURRENT_COB | awk -F: '/^Database role/ {match ($0, /[A-Za-z_]*PRIMARY[A-Za-z_]*/); print substr ($0, RSTART, RLENGTH)}'`
echo $STANDBY_CONF
#EOF

(which never should have worked since EOF and #EOF are not the same string) to:
Code:
STANDBY_CONF=$(ssh $COB_HOST << EOF
srvctl config database -d $CURRENT_COB | awk -F: '/^Database role/ {match ($0, /[A-Za-z_]*PRIMARY[A-Za-z_]*/); print substr ($0, RSTART, RLENGTH)}'
EOF
)

and see what happens.
These 2 Users Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to pass variables between scripts?

Hello, I have two bash scripts like the following: script 1: #!/bin/bash var=WORLD bash path/to/second/script/script2.bash script 2: #!/bin/bash echo "HELLO $var" I expected the output to be "HELLO WORLD" but instead, I get "HELLO". I understand that when I envoke another bash... (2 Replies)
Discussion started by: jl487
2 Replies

2. Shell Programming and Scripting

Passing variables between sub-scripts

I have written a program for some data analysis. It is gettin long. I would like to restructure it so that i can have a master file which controls multiple subscripts in order to make it easier to understand. I need to be able to define variables in the master script which are used by all three... (2 Replies)
Discussion started by: carlr
2 Replies

3. Shell Programming and Scripting

How to declare variables once and reuse them in other scripts?

Hello everyone. I'm trying to create a conf file with variables that my other scripts will use. I have several scripts that use the same variables, and since I don't know how to read them from an external file, i define them in each script (and then if i want to change one's value i need to... (4 Replies)
Discussion started by: moshe88
4 Replies

4. UNIX for Advanced & Expert Users

How to make the variables of one script available for the other scripts?

Hello Everyone, I want to know how can we make the variables of one script available for the other script? for example i have three scripts variable_availability.sh,first.sh,second.sh and a file containing variables called common ---------------------------------- cat variable_availability.sh... (2 Replies)
Discussion started by: Kesavan
2 Replies

5. Shell Programming and Scripting

Scope of variables between scripts

Friends, I am using ksh under SunoS. This is what I have In file1.sh NOW=$(date +"%b-%d-%y") LOGFILE="./log-$NOW.log" I will be using this file through file1.sh as log file. I have another script file2.sh which is being called inside my file1.sh. I would like to use the same log... (6 Replies)
Discussion started by: dahlia84
6 Replies

6. Shell Programming and Scripting

Passing variables between scripts

Hi all. I need to pass a value from a script that runs in a sub-shell, back into the calling shell like below (or into script 2 directly): outer_script export param=value1 script1 $param (in script1: export param=value2) script2 $param ($param is now value1, not value2... (4 Replies)
Discussion started by: bbergstrom74
4 Replies

7. UNIX for Dummies Questions & Answers

Passing variables between scripts...

Hey all, I'm wondering how you pass variable's that are defined in one script to another script that's been called by that first script..... Best regards, Jaz (1 Reply)
Discussion started by: Jazmania
1 Replies

8. Shell Programming and Scripting

How to access variables across scripts

Hi All, I have declared a variable in script1 and assign a value for it. In script2 i'll call script1 and then I want the value of variables set in script1. I have tried with export, but in vain. How can I achive this? Below is the two scripts. --script1 #!/usr/bin/ksh echo $1... (1 Reply)
Discussion started by: javaDev
1 Replies

9. UNIX for Dummies Questions & Answers

Variables in scripts

Just a quick question. If I have a script that calls another script while running, is it possible for the second script to reference a variable in the first script and if so, how. Is it scriptname.sh:$VARIABLE for a global variable and can you do scriptname.sh:function $VARIABLE or am I off my... (1 Reply)
Discussion started by: kirkm76
1 Replies

10. Shell Programming and Scripting

executing variables in ksh scripts?

In a ksh script on an AIX box running a jillion oracle database processes, I'm setting a variable to one of two possible arguments, depending on cmd line arguments. FINDIT="ps -ef | grep oracle | grep DBexport | grep rshrc" -or- FINDIT="ps -ef | grep oracle | grep prod | grep runback" I... (3 Replies)
Discussion started by: zedmelon
3 Replies
Login or Register to Ask a Question