Sponsored Content
Top Forums Shell Programming and Scripting Variable within variable expansion Post 303044728 by hburnswell on Monday 2nd of March 2020 04:15:37 PM
Old 03-02-2020
Variable within variable expansion

Hi,

I have been trying to get variable within variable expansion to work but have not been able to succeed. It seems that the two suggestions I am seeing are using 'eval' and using the built in bash capability of "${!test}". Here is a snippet of what I"m trying to accomplish:

Code:
#!/bin/bash
b2b_qa_site=1234
b2c_qa_site=4321
b2b_prd_site=5678
b2c_prd_site=8765

grp=`echo "${1: -2:1}"`
env=`echo "${1: -3:1}"`


if [[ $env -eq 4 ]]; then

        env=prd

else

        env=qa

fi

if [[ $grp -eq 0 ]]; then

        grp=b2b

else

        grp=b2c

fi

test=${grp}_${env}_site
eval echo \$test

This would be used as:

Code:
# ./script box400

And ideally receive:

Code:
5678

Can anyone shed some light on what I am doing wrong here? I appreciate any guidance.

Thanks,
HB
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

ksh on HP-UX -- variable expansion

We have a script that runs in ksh on HP-UX 11.11. It takes three arguments. The last argument can be a filename or wildcard character. For example: script -s hello -t goodbye '*.d*' In a case such as this, I would wrap single quotes around the final argument because I dont want the shell to... (4 Replies)
Discussion started by: dangral
4 Replies

2. Shell Programming and Scripting

Basic variable expansion not working...

#!/usr/bin/bash if then echo "Not valid arguments entered. Just username should be entered." else USER_NAME=$1 FILE_NAME=$USER_NAME.info UNN=STUDIN\\\\$1 echo $UNN last STUDIN\\\\$1 last UNN If I type `last STUDIN\\eip060` it works but if I try to expand it with variable it is... (5 Replies)
Discussion started by: Zammy_bg
5 Replies

3. Shell Programming and Scripting

bash - delay expansion of variable

Hello - I have a bash script which does some logging, and I'd like to include the line number of the echo statement that pipes into $LOGGER: MYPID=$$ MYNAME=`basename $0` LOGGER="/usr/bin/logger -t $MYNAME($LINENO) -p daemon.error" ... echo 'this is an entry into the log file' | $LOGGER ... (3 Replies)
Discussion started by: scandora
3 Replies

4. UNIX for Dummies Questions & Answers

Variable brace expansion

I'm in the habit of using the following type of loop structure: for num in `seq $1 $2` do command doneWhile `seq $1 $2` is not exactly a huge resource hog, I would like to learn a better way. It seems that brace expansion is a good way to go: for num in {3..10}The problem, though, is... (2 Replies)
Discussion started by: treesloth
2 Replies

5. Shell Programming and Scripting

Bash variable delayed expansion?

i write a batch file , here is the content. dirname='date +%Y-%m-%d' mkdir dirname but it doen's work, it just create a folder named date and +%Y-%m-%d. i have tried run the command seperately in the bash prompt. after the first sentence executed , i use $dirname to watch the value of... (4 Replies)
Discussion started by: premotheus
4 Replies

6. Shell Programming and Scripting

Variable expansion in sed

The objective of the code below is to create sed script to be later executed. However, it bonks because $ARCHIVENAME expands to a directory specification so the forward slashes cause problems. I can think of a few solutions that would involve redesigning the process, but I'm hoping there might be... (4 Replies)
Discussion started by: tiggyboo
4 Replies

7. Shell Programming and Scripting

delay variable expansion

Hi forum, in my bash script I've many lines executing commands with redirection to log files. ... xyz_cmd 2>&1 > $BASENAME.$LINENO The trailing part of these lines doesn't look nice and I like to put it into a variable. The (not working) idea is something like that ... (3 Replies)
Discussion started by: wolfi089
3 Replies

8. UNIX for Dummies Questions & Answers

Can I use a variable with brace expansion?

So, I was bored on the train today, and was thinking of ways to loop through elements of an array. I came up with the following simple script, but it doesn't work as brace expansion doesn't seem to work with variables. Is there something I'm missing, or does the shell just not work like this? ... (4 Replies)
Discussion started by: DeCoTwc
4 Replies

9. Shell Programming and Scripting

Help required regarding variable expansion in UNIX

Hello, I have one variable coming from one file: abc=$xyz/filename.txt where $xyz is defined in .profile file as say, /usr/dev/src i am passing abc variable to one perl script as input parameter. perl 123.pl -s $abc But inside the perl script execution, the variable $abc is just... (1 Reply)
Discussion started by: vikas_trl
1 Replies

10. Shell Programming and Scripting

Bash variable expansion

Hello. The file /etc/fstab contains UUID=957c3295-9944-1593-82e2-2b90dede4312 / ext4 noatime,discard,acl,user_xattr 1 1 I fill a variable SOME_LINE=$( cat /etc/fstab | grep \/\..*ext4 | grep noatime,discard )echo $SOME_LINE... (3 Replies)
Discussion started by: jcdole
3 Replies
hx509 enviroment functions(3)					Heimdalx509library				     hx509 enviroment functions(3)

NAME
hx509 enviroment functions - Functions int hx509_env_add (hx509_context context, hx509_env *env, const char *key, const char *value) int hx509_env_add_binding (hx509_context context, hx509_env *env, const char *key, hx509_env list) const char * hx509_env_lfind (hx509_context context, hx509_env env, const char *key, size_t len) const char * hx509_env_find (hx509_context context, hx509_env env, const char *key) hx509_env hx509_env_find_binding (hx509_context context, hx509_env env, const char *key) void hx509_env_free (hx509_env *env) Detailed Description Function Documentation int hx509_env_add (hx509_context context, hx509_env * env, const char * key, const char * value) Add a new key/value pair to the hx509_env. Parameters: context A hx509 context. env enviroment to add the enviroment variable too. key key to add value value to add Returns: An hx509 error code, see hx509_get_error_string(). int hx509_env_add_binding (hx509_context context, hx509_env * env, const char * key, hx509_env list) Add a new key/binding pair to the hx509_env. Parameters: context A hx509 context. env enviroment to add the enviroment variable too. key key to add list binding list to add Returns: An hx509 error code, see hx509_get_error_string(). const char* hx509_env_find (hx509_context context, hx509_env env, const char * key) Search the hx509_env for a key. Parameters: context A hx509 context. env enviroment to add the enviroment variable too. key key to search for. Returns: the value if the key is found, NULL otherwise. hx509_env hx509_env_find_binding (hx509_context context, hx509_env env, const char * key) Search the hx509_env for a binding. Parameters: context A hx509 context. env enviroment to add the enviroment variable too. key key to search for. Returns: the binding if the key is found, NULL if not found. void hx509_env_free (hx509_env * env) Free an hx509_env enviroment context. Parameters: env the enviroment to free. const char* hx509_env_lfind (hx509_context context, hx509_env env, const char * key, size_t len) Search the hx509_env for a length based key. Parameters: context A hx509 context. env enviroment to add the enviroment variable too. key key to search for. len length of key. Returns: the value if the key is found, NULL otherwise. Version 1.5.2 11 Jan 2012 hx509 enviroment functions(3)
All times are GMT -4. The time now is 05:51 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy