Do we need to define the shell on file that include only functions?
Clash Royale CLAN TAG#URR8PPP
I am wondering if we need to add shell title:
#!/bin/bash
on a script, second.sh
, which only defines a function, and is called from another script, script.sh
.
For example, with script.sh
containing
#!/bin/bash
source second.sh
func1 "make amerika great again "
echo $I_AM_SAY
and second.sh
containing only a function that is called from the first script:
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
Do we need to define second.sh
instead as:
#!/bin/bash
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
or as:
#!/usr/bin/env bash
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
bash shell-script function
add a comment |
I am wondering if we need to add shell title:
#!/bin/bash
on a script, second.sh
, which only defines a function, and is called from another script, script.sh
.
For example, with script.sh
containing
#!/bin/bash
source second.sh
func1 "make amerika great again "
echo $I_AM_SAY
and second.sh
containing only a function that is called from the first script:
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
Do we need to define second.sh
instead as:
#!/bin/bash
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
or as:
#!/usr/bin/env bash
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
bash shell-script function
add a comment |
I am wondering if we need to add shell title:
#!/bin/bash
on a script, second.sh
, which only defines a function, and is called from another script, script.sh
.
For example, with script.sh
containing
#!/bin/bash
source second.sh
func1 "make amerika great again "
echo $I_AM_SAY
and second.sh
containing only a function that is called from the first script:
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
Do we need to define second.sh
instead as:
#!/bin/bash
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
or as:
#!/usr/bin/env bash
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
bash shell-script function
I am wondering if we need to add shell title:
#!/bin/bash
on a script, second.sh
, which only defines a function, and is called from another script, script.sh
.
For example, with script.sh
containing
#!/bin/bash
source second.sh
func1 "make amerika great again "
echo $I_AM_SAY
and second.sh
containing only a function that is called from the first script:
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
Do we need to define second.sh
instead as:
#!/bin/bash
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
or as:
#!/usr/bin/env bash
X=soon
function func1
fun=$1
I_AM_SAY=$fun$X
bash shell-script function
bash shell-script function
edited Dec 13 at 10:47
Stephen Kitt
163k24362441
163k24362441
asked Dec 13 at 10:37
yael
2,42112059
2,42112059
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
No, you don’t need a shebang line: the running shell sources the script directly, it doesn’t start a new shell (which is the whole point of sourcing a script), so neither it nor the kernel need to know which shell to use to run it.
If you want to prevent the second.sh
script from being invoked at all, you can add a
#!/usr/bin/false
shebang line.
thank you , why you put the strange hat on your head?
– yael
Dec 13 at 10:51
winterbash2018.stackexchange.com
– Stephen Kitt
Dec 13 at 10:51
add a comment |
If you only source
the file from another script, the hashbang doesn't get interpreted (it's just a comment there). It might work as a comment for the reader to remind them that the script uses functionality specific to a particular shell, though. Of course, you should mention that in plain text in comments too, since, you do have a description of your script in a comment near the top of the file anyway, right?
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%2f487734%2fdo-we-need-to-define-the-shell-on-file-that-include-only-functions%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
No, you don’t need a shebang line: the running shell sources the script directly, it doesn’t start a new shell (which is the whole point of sourcing a script), so neither it nor the kernel need to know which shell to use to run it.
If you want to prevent the second.sh
script from being invoked at all, you can add a
#!/usr/bin/false
shebang line.
thank you , why you put the strange hat on your head?
– yael
Dec 13 at 10:51
winterbash2018.stackexchange.com
– Stephen Kitt
Dec 13 at 10:51
add a comment |
No, you don’t need a shebang line: the running shell sources the script directly, it doesn’t start a new shell (which is the whole point of sourcing a script), so neither it nor the kernel need to know which shell to use to run it.
If you want to prevent the second.sh
script from being invoked at all, you can add a
#!/usr/bin/false
shebang line.
thank you , why you put the strange hat on your head?
– yael
Dec 13 at 10:51
winterbash2018.stackexchange.com
– Stephen Kitt
Dec 13 at 10:51
add a comment |
No, you don’t need a shebang line: the running shell sources the script directly, it doesn’t start a new shell (which is the whole point of sourcing a script), so neither it nor the kernel need to know which shell to use to run it.
If you want to prevent the second.sh
script from being invoked at all, you can add a
#!/usr/bin/false
shebang line.
No, you don’t need a shebang line: the running shell sources the script directly, it doesn’t start a new shell (which is the whole point of sourcing a script), so neither it nor the kernel need to know which shell to use to run it.
If you want to prevent the second.sh
script from being invoked at all, you can add a
#!/usr/bin/false
shebang line.
answered Dec 13 at 10:43
Stephen Kitt
163k24362441
163k24362441
thank you , why you put the strange hat on your head?
– yael
Dec 13 at 10:51
winterbash2018.stackexchange.com
– Stephen Kitt
Dec 13 at 10:51
add a comment |
thank you , why you put the strange hat on your head?
– yael
Dec 13 at 10:51
winterbash2018.stackexchange.com
– Stephen Kitt
Dec 13 at 10:51
thank you , why you put the strange hat on your head?
– yael
Dec 13 at 10:51
thank you , why you put the strange hat on your head?
– yael
Dec 13 at 10:51
winterbash2018.stackexchange.com
– Stephen Kitt
Dec 13 at 10:51
winterbash2018.stackexchange.com
– Stephen Kitt
Dec 13 at 10:51
add a comment |
If you only source
the file from another script, the hashbang doesn't get interpreted (it's just a comment there). It might work as a comment for the reader to remind them that the script uses functionality specific to a particular shell, though. Of course, you should mention that in plain text in comments too, since, you do have a description of your script in a comment near the top of the file anyway, right?
add a comment |
If you only source
the file from another script, the hashbang doesn't get interpreted (it's just a comment there). It might work as a comment for the reader to remind them that the script uses functionality specific to a particular shell, though. Of course, you should mention that in plain text in comments too, since, you do have a description of your script in a comment near the top of the file anyway, right?
add a comment |
If you only source
the file from another script, the hashbang doesn't get interpreted (it's just a comment there). It might work as a comment for the reader to remind them that the script uses functionality specific to a particular shell, though. Of course, you should mention that in plain text in comments too, since, you do have a description of your script in a comment near the top of the file anyway, right?
If you only source
the file from another script, the hashbang doesn't get interpreted (it's just a comment there). It might work as a comment for the reader to remind them that the script uses functionality specific to a particular shell, though. Of course, you should mention that in plain text in comments too, since, you do have a description of your script in a comment near the top of the file anyway, right?
answered Dec 13 at 10:43
ilkkachu
55.5k783151
55.5k783151
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f487734%2fdo-we-need-to-define-the-shell-on-file-that-include-only-functions%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