Resolve Environment Variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Resolve Environment Variable
# 1  
Old 02-08-2012
Resolve Environment Variable

I am tyring to resolve an environment variable that is part of a string I selected from our database.
Simply put, I want cd to this folder before checking if a file exists.

The variable $in_loc has the value '$PS_HOME/int/VSP' where $PS_HOME is the environment variable.

I am using cd $in_loc in my ksh script, however it doesn't work. I get the error './getfile.sh[29]: $PS_HOME/int/VSP: not found'.

can anyone help me out. I have tried several things including readlink, realpath, and various forms of the cd command, but can't seem to get it to work...
# 2  
Old 02-08-2012
Can you paste the code snippet around this?... exact code snippet...

--ahamed
# 3  
Old 02-08-2012
Resolve Environment Variable

Here is my code...

Code:
#!/bin/ksh
echo "------------------------------"
echo "Scripting ls command..."
echo "------------------------------"
 
SQLPLUS_CMD=$ORACLE_HOME/bin/sqlplus
login="userid/pwd@dev"
 
in_loc=`$SQLPLUS_CMD -s $login <<EOF 
set pagesize 0 feedback off verify off heading off echo off
select file_location from ps_is_ftp_rc where prcsname = 'HR1062' and seqnum = 1;
exit;
EOF`
 
filepath="cd "$in_loc
 
echo "filepath = $filepath"
echo "in_loc value: $in_loc"
 
cd $in_loc
 
echo `pwd`
 
my_file="testfile"
 
fname=`ls -t $my_file | head -1`
 
echo " "
echo "last edited filename: $fname"


Last edited by Franklin52; 02-09-2012 at 04:06 AM.. Reason: Please use code tags for code and data samples, thank you
# 4  
Old 02-08-2012
So the data retrieved from the DB is "$PS_HOME/int/VSP"? Is $PS_HOME defined anywhere?

Please paste the output of bash -x /your/script

--ahamed
# 5  
Old 02-08-2012
The results are listed below, however I removed sensitive info. $PS_HOME is defined and I can run the command 'cd $PS_HOME/int/VSP' at the command line and get the diesired results. It just doesn't work in my script...


Code:
+ echo ------------------------------
------------------------------
+ echo 'Scripting ls command...'
Scripting ls command...
+ echo ------------------------------
------------------------------
+ SQLPLUS_CMD=<oracle_home>/bin/sqlplus
+ login=<userid>/<pwd>@<db>
++ <oracle_home>/bin/sqlplus -s <userid>/<pwd>@db
+ in_loc='$PS_HOME/int/VSP'
+ filepath='cd $PS_HOME/int/VSP'
+ echo 'filepath = cd $PS_HOME/int/VSP'
filepath = cd $PS_HOME/int/VSP
+ echo 'in_loc value: $PS_HOME/int/VSP'
in_loc value: $PS_HOME/int/VSP
+ cd '$PS_HOME/int/VSP'
getfile.sh: line 25: cd: $PS_HOME/int/VSP: No such file or directory
++ pwd
+ echo <pwd> 
++ cd '$PS_HOME/int/VSP'
getfile.sh: line 29: cd: $PS_HOME/int/VSP: No such file or directory
+ echo
++ pwd
+ echo <pwd>

+ my_file=testfile
++ ls -t testfile
++ head -1
testfile: No such file or directory
+ fname=
+ echo ' '
+ echo 'last edited filename: '
last edited filename:
+ echo ' '
+ echo 'Found string at position:  '
Found string at position:


Last edited by Franklin52; 02-09-2012 at 04:07 AM.. Reason: code tags
# 6  
Old 02-08-2012
Try this change in your script...
Code:
actual_dir=$( eval echo $in_loc )
cd $actual_dir

--ahamed
# 7  
Old 02-08-2012
That works... Thank you very much...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Cannot resolve $variable in awk

My script ---------- for i in `cat n`;do export k=`echo "CSN: "$i` //combining CSN: and value from n echo "$k" awk ''{print "CSN: "$0;}'{_=29}_&&_--' file1|tail -1 >> file2 done In the above script i cannot able to resolve $k in awk command file n contains ------------ 0000 1111 2222... (2 Replies)
Discussion started by: Mohana29_1988
2 Replies

2. Shell Programming and Scripting

Resolve parameter value stored in a variable

Hi All, I have below variable, xyz=\$AI_XFR Now, if you will run the below command => echo $xyz $AI_XFR It is returning hardcoded string value. Whereas in environment, there is value in it. Like below: => echo $AI_XFR /home/aditya/sandbox/xfr/ I need to resolve this... (4 Replies)
Discussion started by: adgangwar
4 Replies

3. Shell Programming and Scripting

Resolve variable inside another variable

Hello Everyone, I am trying to resolve a variable inside another variable.Let me go straight to the example. Input: Query=$Table_1 Join $Table_2 (Query itself is a variable here) Now for two different cases I am assigning different values to Table_1 and Table_2 Case 1:... (14 Replies)
Discussion started by: vinay4889
14 Replies

4. Shell Programming and Scripting

Expand an environment variable in sed, when the variable contains a slash

I'm trying to make a sed substitution where the substitution pattern is an environment variable to be expanded, but the variable contains a "slash". sed -e 's/<HOME_DIRECTORY>/'$HOME'/'This gives me the following error: sed: -e expression #1, char 21: unknown option to `s'Obviously this is... (2 Replies)
Discussion started by: Ilja
2 Replies

5. Solaris

Environment Variable

Hi All, I am new to SUN Solaris.I have some questions regarding environment variable.:confused: Q1. Where the environment variables available in Solaris. Q2. What command used here. Q3. Can a user change this .Suppose i want to change the bash to ksh can it be possible here. Or i need to... (2 Replies)
Discussion started by: jdash.ps
2 Replies

6. Shell Programming and Scripting

about environment variable

i am not clear at some places i saw that assigning a env var with colon ':' like export PATH=/usr/bin:/usr/ucb:/etc:/usr/sbin:.:/usr/platform/sun4u/sbin here you can find : and a . and again : could some one explain how it works... see all is starting from root directory, how : is used and... (6 Replies)
Discussion started by: Arunprasad
6 Replies

7. Shell Programming and Scripting

environment variable

Hi, I have to set bunch of variables and all other programs like make, perl will use them .. Here are my constraints and requirements ... The variables have to be set by executing a script that runs in c shell. I cannot source the script since people who use this script might be on... (8 Replies)
Discussion started by: sharanbr
8 Replies

8. Shell Programming and Scripting

Resolve a Variable

Hi I have a variable which is a path ie: UBERROR=/cobwrk/mchr/prodsup/ub/wrk/../error is there anyway I can get the output of an echo to read: #echo $UBERROR /cobwrk/mchr/prodsup/ub/error instead of #echo $UBERROR /cobwrk/mchr/prodsup/ub/wrk/../error Many thanks! (2 Replies)
Discussion started by: serm
2 Replies

9. UNIX for Dummies Questions & Answers

Environment Variable

$ . oraenv (when i type this at the prompt) ORACLE_SID = ? ( I get this) I understand that . oraenv is a startup script and it has the ENV variable ORACLE_SID. But pls let me know what more it explains and also how to change the env variable here. (2 Replies)
Discussion started by: thumsup9
2 Replies

10. UNIX for Dummies Questions & Answers

Environment Variable

Hello, I need some help to understand system and user environment files, such as .profile and others. I can edit my .profile file in my home directory. What I only touch in this file is the $PATH variable and when I am logged in under a telnet session, the PATH that I specify is used and... (8 Replies)
Discussion started by: jacobsa
8 Replies
Login or Register to Ask a Question