How to invoke shell function in string? (bash)
I want to invoke shell function in string. Here is my use case:
function envfoo() {
env ENV_FOO=foo $@
}
function envbar() {
env ENV_BAR=bar $@
}
$ envfoo env |egrep ENV_
ENV_FOO=foo
$ envbar env |egrep ENV_
ENV_BAR=bar
$ envfoo envbar env |egrep ENV_
env: envbar: No such file or directory
# expected result: ENV_FOO=foo and ENV_BAR=bar lines
Here I want envfoo
to execute envbar
shell function.
How can I do it?
Say that is opposite of command
which ignores shell function and finds real command.
Maybe I gave a wrong example. I want to combine multiple shell functions like actual executables.
A real case goes like this:
function be() {
bundle exec $@
}
function envstg() {
env RAILS_ENV=staging $@
}
$ be rails server
# launches Rails server
$ envstg be rails server
env: be: No such file or directory
Here be
isn't expanded into bundle exec. How can I expand them?
bash shell
add a comment |
I want to invoke shell function in string. Here is my use case:
function envfoo() {
env ENV_FOO=foo $@
}
function envbar() {
env ENV_BAR=bar $@
}
$ envfoo env |egrep ENV_
ENV_FOO=foo
$ envbar env |egrep ENV_
ENV_BAR=bar
$ envfoo envbar env |egrep ENV_
env: envbar: No such file or directory
# expected result: ENV_FOO=foo and ENV_BAR=bar lines
Here I want envfoo
to execute envbar
shell function.
How can I do it?
Say that is opposite of command
which ignores shell function and finds real command.
Maybe I gave a wrong example. I want to combine multiple shell functions like actual executables.
A real case goes like this:
function be() {
bundle exec $@
}
function envstg() {
env RAILS_ENV=staging $@
}
$ be rails server
# launches Rails server
$ envstg be rails server
env: be: No such file or directory
Here be
isn't expanded into bundle exec. How can I expand them?
bash shell
1
Why don't use(envbar && envfoo) | grep ENV_
?
– cuonglm
Sep 22 '14 at 3:52
Maybe I gave a wrong example.
– knagano
Sep 22 '14 at 9:39
add a comment |
I want to invoke shell function in string. Here is my use case:
function envfoo() {
env ENV_FOO=foo $@
}
function envbar() {
env ENV_BAR=bar $@
}
$ envfoo env |egrep ENV_
ENV_FOO=foo
$ envbar env |egrep ENV_
ENV_BAR=bar
$ envfoo envbar env |egrep ENV_
env: envbar: No such file or directory
# expected result: ENV_FOO=foo and ENV_BAR=bar lines
Here I want envfoo
to execute envbar
shell function.
How can I do it?
Say that is opposite of command
which ignores shell function and finds real command.
Maybe I gave a wrong example. I want to combine multiple shell functions like actual executables.
A real case goes like this:
function be() {
bundle exec $@
}
function envstg() {
env RAILS_ENV=staging $@
}
$ be rails server
# launches Rails server
$ envstg be rails server
env: be: No such file or directory
Here be
isn't expanded into bundle exec. How can I expand them?
bash shell
I want to invoke shell function in string. Here is my use case:
function envfoo() {
env ENV_FOO=foo $@
}
function envbar() {
env ENV_BAR=bar $@
}
$ envfoo env |egrep ENV_
ENV_FOO=foo
$ envbar env |egrep ENV_
ENV_BAR=bar
$ envfoo envbar env |egrep ENV_
env: envbar: No such file or directory
# expected result: ENV_FOO=foo and ENV_BAR=bar lines
Here I want envfoo
to execute envbar
shell function.
How can I do it?
Say that is opposite of command
which ignores shell function and finds real command.
Maybe I gave a wrong example. I want to combine multiple shell functions like actual executables.
A real case goes like this:
function be() {
bundle exec $@
}
function envstg() {
env RAILS_ENV=staging $@
}
$ be rails server
# launches Rails server
$ envstg be rails server
env: be: No such file or directory
Here be
isn't expanded into bundle exec. How can I expand them?
bash shell
bash shell
edited Sep 22 '14 at 9:42
knagano
asked Sep 22 '14 at 3:04
knaganoknagano
63
63
1
Why don't use(envbar && envfoo) | grep ENV_
?
– cuonglm
Sep 22 '14 at 3:52
Maybe I gave a wrong example.
– knagano
Sep 22 '14 at 9:39
add a comment |
1
Why don't use(envbar && envfoo) | grep ENV_
?
– cuonglm
Sep 22 '14 at 3:52
Maybe I gave a wrong example.
– knagano
Sep 22 '14 at 9:39
1
1
Why don't use
(envbar && envfoo) | grep ENV_
?– cuonglm
Sep 22 '14 at 3:52
Why don't use
(envbar && envfoo) | grep ENV_
?– cuonglm
Sep 22 '14 at 3:52
Maybe I gave a wrong example.
– knagano
Sep 22 '14 at 9:39
Maybe I gave a wrong example.
– knagano
Sep 22 '14 at 9:39
add a comment |
1 Answer
1
active
oldest
votes
I don't know why you have the env
command there, but it works fine if you remove it:
$ function be() {
> echo "$@"
> }
$ function envstg() {
> RAILS_ENV=staging "$@"
> }
$ be rails server
rails server
$ envstg be rails server
rails server
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%2f156744%2fhow-to-invoke-shell-function-in-string-bash%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
I don't know why you have the env
command there, but it works fine if you remove it:
$ function be() {
> echo "$@"
> }
$ function envstg() {
> RAILS_ENV=staging "$@"
> }
$ be rails server
rails server
$ envstg be rails server
rails server
add a comment |
I don't know why you have the env
command there, but it works fine if you remove it:
$ function be() {
> echo "$@"
> }
$ function envstg() {
> RAILS_ENV=staging "$@"
> }
$ be rails server
rails server
$ envstg be rails server
rails server
add a comment |
I don't know why you have the env
command there, but it works fine if you remove it:
$ function be() {
> echo "$@"
> }
$ function envstg() {
> RAILS_ENV=staging "$@"
> }
$ be rails server
rails server
$ envstg be rails server
rails server
I don't know why you have the env
command there, but it works fine if you remove it:
$ function be() {
> echo "$@"
> }
$ function envstg() {
> RAILS_ENV=staging "$@"
> }
$ be rails server
rails server
$ envstg be rails server
rails server
answered Sep 22 '14 at 12:07
l0b0l0b0
27.9k17118246
27.9k17118246
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%2f156744%2fhow-to-invoke-shell-function-in-string-bash%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
1
Why don't use
(envbar && envfoo) | grep ENV_
?– cuonglm
Sep 22 '14 at 3:52
Maybe I gave a wrong example.
– knagano
Sep 22 '14 at 9:39