The variable-substitution tag has no wiki summary.
13
votes
1answer
397 views
Why does variable expansion without $ work in expressions?
#!/bin/bash
VALUE=10
if [[ VALUE -eq 10 ]]
then
echo "Yes"
fi
To my surprise, this outputs "Yes". I would have expected it to require [[ $VALUE -eq 10 ]]. I've scanned the CONDITIONAL ...
7
votes
1answer
360 views
Why is bash extended-globbing variable substitution acting at the byte level?
I thought that bash variable substitution and globbing worked at character resolution, so I was rather surprised to see it acting at the byte level.
Everything in my locale is en_AU.UTF-8
When ...
6
votes
2answers
460 views
Dereference concatenated variable name
I can do this, but it requires making a string of the variable then dereferencing it. Is there any way to shorten it to a simpler statement?
#!/bin/bash
FRUITS="BANANA APPLE ORANGE"
...
5
votes
3answers
254 views
How to generate new var names on the fly
I'm trying to generate dynamic var names in a shell script to process a set of files with distinct names in a loop as follows:
SAMPLE1='1-first.with.custom.name'
SAMPLE2='2-second.with.custom.name'
...
4
votes
1answer
300 views
Variable substitution with an exclamation mark in bash
I have the following lines in my .cfg bash script file
DDF_SOURCE="siebel_DATA_DATE_FORMAT"
DATA_DATE_FORMAT=${!DDF_SOURCE}
how is ${!DDF_SOURCE} evaluated? It would be !siebel_DATA_DATE_FORMAT, ...
3
votes
4answers
100 views
Double and triple substitution in bash and zsh
Follow-up to the background part in this question.
In bash I can use {!FOO} for double substitution, in zsh ${(P)FOO}. In both, the old-school (hack-y) eval \$$FOO works.
So, the smartest and most ...
3
votes
2answers
458 views
Use a variable reference “inside” another variable
I'm sure it is relatively simple, I just don't know how to do it.
#!/usr/bin/ksh
set `iostat`
myvar=6
I want to something like echo $($myvar) which i want interpreted as $($myvar) -> $(6) -> value
...
3
votes
1answer
67 views
Different behavior of $() and `` [duplicate]
% PATH="MYPATH"
% VAR="PATH"
% echo $(eval echo \$$VAR)
MYPATH
% echo `eval echo \$$VAR`
5707VAR
^^
This is the process number.
I thought those two were exactly the same, but obviously there are ...
2
votes
3answers
35 views
Can I reload variable in a watch command?
Part of my job involves some data handling. One of the tasks is to 'flatten' a set of directories (which we'll call Dir for now), and copy them to a new location called DirFlat.
This can take a long ...
2
votes
2answers
58 views
${!FOO} and zsh
${!FOO} performs a double substitution in bash, meaning it takes the (string) value of FOO and uses it as a variable name.
zsh doesn’t support this feature.
Is there a way to make this work the same ...
2
votes
1answer
131 views
shell variable in awk is not being passed to all the lines but just for the very first line of input?
inputfile:is2.txt
10.39.5.41,A1,B1
10.39.5.41,A2,B2
10.39.5.41,A3,B3
10.39.5.41,A4,B4
10.39.5.41,A5,B5
10.39.5.41,A6,B6
script :
#!/bin/bash
second_column="OOOOOOO" # OOOOOOO will be added to ...
2
votes
2answers
79 views
Picking a random file from each subfolder
Inspired by the accepted answer to this thread: List X random files from a directory, I tried to put together two lines that would pick one file from each subfolder of my current directory, with no ...
2
votes
2answers
255 views
pure shell complex substitution in variable
However it may be impossible, I hope I'm just bad man reader =)
Is there any way to substitute text in variables on several patterns at time or even using back reference?
For example, I have ...
2
votes
3answers
251 views
Substitute placeholders in template
Say I have a shell configuration file config like this:
HOST=localhost
PORT=8080
Now I have a template template like this:
The host is <%= @HOST %>
The port is <%= @PORT %>
How do I ...
1
vote
2answers
22 views
Variable scope in multiple pipes
I was trying to do something following,
find . -name "*.dat" | get the basename of file | move filename returned by first command to basename returned by second command
To give a concrete example, ...
1
vote
1answer
167 views
Shell variables not working?
I'm trying to store the date in a variable ($DATE) so I can use it later, but it doesn't seem to work. See anything wrong?
DATE=$(date +"%Y-%m-%d %R")
sudo mysqldump -u root -pnotgivingyoumypassword ...
1
vote
1answer
368 views
Variable Substitution in Awk Print Statement -v
I've spent over an hour poking at this. It can't be this hard...
I want to print a column of data from one file to another file. The column I want to print is dependent on what is passed in and stuff ...
1
vote
3answers
154 views
Reevaluate the prompt expression each time a prompt is displayed in zsh
I'm adjusting my zsh prompt, based upon the dallas theme and the dstufft theme from oh-my-zsh. I love how dallas has various sections of the prompt contained in variables, which makes it much easier ...
0
votes
2answers
100 views
Shell script parameter substitution
I have seen a line of shell script as follows:
local soft_upgrade=${3:-false}
What does this mean? I don't know what 3:-false means.
0
votes
1answer
39 views
Combining parameter expansion with modifiers in zsh
Say I have the following
$f1=/some/path
$f2=/some/subpath
$f3=/some/other/subpath
If I try:
test1=${$f1/$f2/${f3:t}}
zsh complains with bad substitution.
However:
test2=${f3:t}
works well. ...
0
votes
1answer
40 views
Colon breaks the variable subsitution [closed]
I am trying to lookup some C functions so that I could debug while using strace. So I setup a bash function to look it up in firefox (or links), but the substitution falls apart with : and escaping ...
0
votes
1answer
204 views
Unable to loop through cURL command
I am able to execute individual cURL commands using,
curl -u user:password -v -XPOST -H 'Content-type: text/xml' -d '<featureType><name>quadrella_indica</name></featureType>' ...
0
votes
4answers
188 views
Bash Globbing Variable Substitution? [duplicate]
Possible Duplicate:
Batch renaming files
I want to rename files using their existing name as a base for the new one.
So if I can ls these files with
ls blue*+(.png)
I'd want to rename ...
