How do I set a bash variable that contains another variable?
I am trying to set the variable service to be the value of
var1=first/second
echo $var1 | cut -d '/' -f 1
var2=$var1 | cut -d '/' -f 1"
echo $var2
The result of echo $var1 | cut -d '/' -f 1 is "first" which is correct. However, I haven't been able to set the result of this to another variable. In the case above, var2 is empty.
What would the correct syntax for line 3 be so that the part of the string before the is returned as the value of var2?
bash shell-script
New contributor
fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
I am trying to set the variable service to be the value of
var1=first/second
echo $var1 | cut -d '/' -f 1
var2=$var1 | cut -d '/' -f 1"
echo $var2
The result of echo $var1 | cut -d '/' -f 1 is "first" which is correct. However, I haven't been able to set the result of this to another variable. In the case above, var2 is empty.
What would the correct syntax for line 3 be so that the part of the string before the is returned as the value of var2?
bash shell-script
New contributor
fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Possible duplicate of How can I assign the output of a command to a shell variable?
– G-Man
1 hour ago
See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.
– G-Man
1 hour ago
add a comment |
I am trying to set the variable service to be the value of
var1=first/second
echo $var1 | cut -d '/' -f 1
var2=$var1 | cut -d '/' -f 1"
echo $var2
The result of echo $var1 | cut -d '/' -f 1 is "first" which is correct. However, I haven't been able to set the result of this to another variable. In the case above, var2 is empty.
What would the correct syntax for line 3 be so that the part of the string before the is returned as the value of var2?
bash shell-script
New contributor
fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
I am trying to set the variable service to be the value of
var1=first/second
echo $var1 | cut -d '/' -f 1
var2=$var1 | cut -d '/' -f 1"
echo $var2
The result of echo $var1 | cut -d '/' -f 1 is "first" which is correct. However, I haven't been able to set the result of this to another variable. In the case above, var2 is empty.
What would the correct syntax for line 3 be so that the part of the string before the is returned as the value of var2?
bash shell-script
bash shell-script
New contributor
fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked 2 hours ago
fuzzifuzzi
64
64
New contributor
fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Possible duplicate of How can I assign the output of a command to a shell variable?
– G-Man
1 hour ago
See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.
– G-Man
1 hour ago
add a comment |
Possible duplicate of How can I assign the output of a command to a shell variable?
– G-Man
1 hour ago
See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.
– G-Man
1 hour ago
Possible duplicate of How can I assign the output of a command to a shell variable?
– G-Man
1 hour ago
Possible duplicate of How can I assign the output of a command to a shell variable?
– G-Man
1 hour ago
See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.
– G-Man
1 hour ago
See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.
– G-Man
1 hour ago
add a comment |
1 Answer
1
active
oldest
votes
You could use command substitution
var2=$(echo "$var1" | cut -d '/' -f 1)
However in this case it would be better to use the shell's parameter substitution directly:
$ var2=${var1%/*}
$ echo "$var2"
first
(removes the shortest trailing substring matching /*) and
$ var3=${var1#*/}
$ echo "$var3"
second
(removes the shortest leading substring matching */) should you need it as well.
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
});
}
});
fuzzi is a new contributor. Be nice, and check out our Code of Conduct.
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%2f505971%2fhow-do-i-set-a-bash-variable-that-contains-another-variable%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
You could use command substitution
var2=$(echo "$var1" | cut -d '/' -f 1)
However in this case it would be better to use the shell's parameter substitution directly:
$ var2=${var1%/*}
$ echo "$var2"
first
(removes the shortest trailing substring matching /*) and
$ var3=${var1#*/}
$ echo "$var3"
second
(removes the shortest leading substring matching */) should you need it as well.
add a comment |
You could use command substitution
var2=$(echo "$var1" | cut -d '/' -f 1)
However in this case it would be better to use the shell's parameter substitution directly:
$ var2=${var1%/*}
$ echo "$var2"
first
(removes the shortest trailing substring matching /*) and
$ var3=${var1#*/}
$ echo "$var3"
second
(removes the shortest leading substring matching */) should you need it as well.
add a comment |
You could use command substitution
var2=$(echo "$var1" | cut -d '/' -f 1)
However in this case it would be better to use the shell's parameter substitution directly:
$ var2=${var1%/*}
$ echo "$var2"
first
(removes the shortest trailing substring matching /*) and
$ var3=${var1#*/}
$ echo "$var3"
second
(removes the shortest leading substring matching */) should you need it as well.
You could use command substitution
var2=$(echo "$var1" | cut -d '/' -f 1)
However in this case it would be better to use the shell's parameter substitution directly:
$ var2=${var1%/*}
$ echo "$var2"
first
(removes the shortest trailing substring matching /*) and
$ var3=${var1#*/}
$ echo "$var3"
second
(removes the shortest leading substring matching */) should you need it as well.
answered 2 hours ago
steeldriversteeldriver
36.8k45287
36.8k45287
add a comment |
add a comment |
fuzzi is a new contributor. Be nice, and check out our Code of Conduct.
fuzzi is a new contributor. Be nice, and check out our Code of Conduct.
fuzzi is a new contributor. Be nice, and check out our Code of Conduct.
fuzzi is a new contributor. Be nice, and check out our Code of Conduct.
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%2f505971%2fhow-do-i-set-a-bash-variable-that-contains-another-variable%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
Possible duplicate of How can I assign the output of a command to a shell variable?
– G-Man
1 hour ago
See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.
– G-Man
1 hour ago