Indirect variables in Bash


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Indirect variables in Bash
# 8  
Old 02-11-2013
Hi,
I understand this now and it works perfectly. Thank you very much.
# 9  
Old 03-18-2013
Quote:
Originally Posted by Corona688
[..]

Code:
A="abc"
B="def"

read $A$B <<<"string"

...should put the string "string" into the variable named abcdef.

This is how it's often used:
Code:
read VARNAME

...but note that it takes a variable name -- a string -- not the variable itself. You can feed it whatever string you please, derived from whatever variables you please, and do things that would otherwise require ugly insecure eval hacks.
[..]
But this method would also have its security risks, but on the left hand side, no? One must control the contents of variables A and B...
*edit* To elaborate: I came across this page

Quote:
with bash, you must still be careful about what is on the left-hand side of the assignment. Inside square brackets, expansions are still performed; thus, with a tainted ref, declare can be just as dangerous as eval:
Code:
# Bash:
 ref='x[$(touch evilfile; echo 0)]'
 ls -l evilfile   # No such file or directory
 declare "$ref=value"
 ls -l evilfile   # It exists now!

The same applies to the read $var construct. I tried this also in ksh93 and then there is an error message ( arithmetic syntax error ) and the code does not get executed..

Last edited by Scrutinizer; 03-18-2013 at 05:21 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing awk variables to bash variables

Trying to do so echo "111:222:333" |awk -F: '{system("export TESTO=" $2)}'But it doesn't work (2 Replies)
Discussion started by: urello
2 Replies

2. Shell Programming and Scripting

BASH arrays and variables of variables in C++

Sometimes it is handy to protect long scripts in C++. The following syntax works fine for simple commands: #define SHELLSCRIPT1 "\ #/bin/bash \n\ echo \"hello\" \n\ " int main () { cout <<system(SHELLSCRIPT1); return 0; } Unfortunately for there are problems for: 1d arrays:... (10 Replies)
Discussion started by: frad
10 Replies

3. Shell Programming and Scripting

Indirect Referral Script

I have a file with two columns of numbers (member IDs): 1 1 2 1 3 1 4 2 5 4 6 1 7 5 8 3 9 2 Think of column 1 as the referee and column 2 as the referrer. Is there a good way to backtrack who referred who? I would like an output, for this example here to be: 1 1 2 1 3 1 4 2 1 (2 Replies)
Discussion started by: mdlloyd7
2 Replies

4. Shell Programming and Scripting

Does SH support indirect expansion like BASH?

Hello, is there a kind soul who can answer me, does the SH support double substitution known as indirect expansion similar to BASH? The syntax for bash is ${!var}. For instance in bash I can write something like this: VAR="value" REF_VAR="VAR" echo ${!REF_VAR} and get the "value"... (1 Reply)
Discussion started by: dimentiy
1 Replies

5. Shell Programming and Scripting

Indirect variable assignment

Hi I have variable A_B=alpha also var1="A" var2="B" I want to retrieve the value alpha using var1 and var2 , somthing like echo ${${var1}_${var2}} that works. Obviously this is receiving syntax error (6 Replies)
Discussion started by: sumir
6 Replies

6. Linux

How to get an Indirect Variable Value..?

Hi, I've got a small problem. If varible A stores "B" and Variable B stores C, How to get the value of variable B by using only Variable A..? I tried the following but didnt work pease help.. $ var1=vikram $ echo $var1 vikram $ vikram=sampath $ echo $vikram sampath $ echo... (6 Replies)
Discussion started by: vickramshetty
6 Replies

7. Shell Programming and Scripting

Bash variables

Ummm can anybody help me with this one? Its prob quite simple. I bascially have a file name say J1x2x3x7.dat Im using the file name as a variable in a bash script. Want I want to do is extract most of the file name and make it a new variable expect with say one of the number now a... (2 Replies)
Discussion started by: RichieFondel
2 Replies

8. Shell Programming and Scripting

Length of an indirect variable

The construct ${#parameter} returns the number of characters in the parameter and ${!parameter} specifies an indirect variable. My question is: How do I combine these two. What I want is ${#!parameter} but this gives an error. Of course I can use: dummy=${!parameter} ${#dummy} but that's a... (0 Replies)
Discussion started by: gone_bush
0 Replies

9. UNIX for Advanced & Expert Users

Compound indirect variable references

Using bash, I'm trying to read a .properties file (name=value pairs), assigning an indirect variable reference for each line in the file. The trick is that a property's value string may contain the name of a property that occurred earlier in the file, and I want the name of the 1st property to... (5 Replies)
Discussion started by: tkrussel
5 Replies
Login or Register to Ask a Question