ksh variable substitution format?
I have variables named var1EMI
, var2EMI
, var1DDE
, var2DDE
, etc
and I need to be able to iterate over them like this;
for dir in var1 var2
do
echo "EMI value for " $dir " is " ${${dir}EMI}
echo "DDE value for " $dir " is " ${${dir}DDE}
done
I can't figure out how to get the ${${dir}EMI}
substitutions to resolve.
ksh
add a comment |
I have variables named var1EMI
, var2EMI
, var1DDE
, var2DDE
, etc
and I need to be able to iterate over them like this;
for dir in var1 var2
do
echo "EMI value for " $dir " is " ${${dir}EMI}
echo "DDE value for " $dir " is " ${${dir}DDE}
done
I can't figure out how to get the ${${dir}EMI}
substitutions to resolve.
ksh
what version of ksh?
– glenn jackman
Nov 4 '13 at 22:20
version is ksh88
– user88710
Nov 5 '13 at 19:04
add a comment |
I have variables named var1EMI
, var2EMI
, var1DDE
, var2DDE
, etc
and I need to be able to iterate over them like this;
for dir in var1 var2
do
echo "EMI value for " $dir " is " ${${dir}EMI}
echo "DDE value for " $dir " is " ${${dir}DDE}
done
I can't figure out how to get the ${${dir}EMI}
substitutions to resolve.
ksh
I have variables named var1EMI
, var2EMI
, var1DDE
, var2DDE
, etc
and I need to be able to iterate over them like this;
for dir in var1 var2
do
echo "EMI value for " $dir " is " ${${dir}EMI}
echo "DDE value for " $dir " is " ${${dir}DDE}
done
I can't figure out how to get the ${${dir}EMI}
substitutions to resolve.
ksh
ksh
edited Nov 4 '13 at 21:55
Joseph R.
28.1k374114
28.1k374114
asked Nov 4 '13 at 21:48
user88710user88710
264
264
what version of ksh?
– glenn jackman
Nov 4 '13 at 22:20
version is ksh88
– user88710
Nov 5 '13 at 19:04
add a comment |
what version of ksh?
– glenn jackman
Nov 4 '13 at 22:20
version is ksh88
– user88710
Nov 5 '13 at 19:04
what version of ksh?
– glenn jackman
Nov 4 '13 at 22:20
what version of ksh?
– glenn jackman
Nov 4 '13 at 22:20
version is ksh88
– user88710
Nov 5 '13 at 19:04
version is ksh88
– user88710
Nov 5 '13 at 19:04
add a comment |
1 Answer
1
active
oldest
votes
ksh 93 has a nameref
command that lets you create "aliases" to variables:
var1EMI=a
var2EMI=b
for v in var1 var2; do
nameref var=${v}EMI
echo "${v}EMI is $var"
done
var1EMI is a
var2EMI is b
For ksh88, you may be forced to use eval
; replace:
nameref var=${v}EMI
with:
eval var=$${v}EMI
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f98860%2fksh-variable-substitution-format%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
ksh 93 has a nameref
command that lets you create "aliases" to variables:
var1EMI=a
var2EMI=b
for v in var1 var2; do
nameref var=${v}EMI
echo "${v}EMI is $var"
done
var1EMI is a
var2EMI is b
For ksh88, you may be forced to use eval
; replace:
nameref var=${v}EMI
with:
eval var=$${v}EMI
add a comment |
ksh 93 has a nameref
command that lets you create "aliases" to variables:
var1EMI=a
var2EMI=b
for v in var1 var2; do
nameref var=${v}EMI
echo "${v}EMI is $var"
done
var1EMI is a
var2EMI is b
For ksh88, you may be forced to use eval
; replace:
nameref var=${v}EMI
with:
eval var=$${v}EMI
add a comment |
ksh 93 has a nameref
command that lets you create "aliases" to variables:
var1EMI=a
var2EMI=b
for v in var1 var2; do
nameref var=${v}EMI
echo "${v}EMI is $var"
done
var1EMI is a
var2EMI is b
For ksh88, you may be forced to use eval
; replace:
nameref var=${v}EMI
with:
eval var=$${v}EMI
ksh 93 has a nameref
command that lets you create "aliases" to variables:
var1EMI=a
var2EMI=b
for v in var1 var2; do
nameref var=${v}EMI
echo "${v}EMI is $var"
done
var1EMI is a
var2EMI is b
For ksh88, you may be forced to use eval
; replace:
nameref var=${v}EMI
with:
eval var=$${v}EMI
edited 13 hours ago
Jeff Schaller
39.5k1054126
39.5k1054126
answered Nov 4 '13 at 22:23
glenn jackmanglenn jackman
51k571110
51k571110
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f98860%2fksh-variable-substitution-format%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
what version of ksh?
– glenn jackman
Nov 4 '13 at 22:20
version is ksh88
– user88710
Nov 5 '13 at 19:04