Why doesn't using two cd commands in bash script execute the second command?Bash script: How to execute commands consecutively without waiting for the previous one?sudo bash can't execute scriptBash script doesn't execute command from PATHWhy doesn't this second nohup command run?Why won't this php script execute bash script?Script for Opening Two Terminals and Execute Three Consecutive CommandsHow to execute commands in gnuplot using shell script?FIFO commands in bash scriptRandom script using bashCreate bash script that allows you to choose multiple options instead of just one?

Is it normal that my co-workers at a fitness company criticize my food choices?

How to deal with a cynical class?

Professor being mistaken for a grad student

Make a transparent 448*448 image

Is a lawful good "antagonist" effective?

How do I interpret this "sky cover" chart?

Ban on all campaign finance?

Russian cases: A few examples, I'm really confused

Have researchers managed to "reverse time"? If so, what does that mean for physics?

Did CPM support custom hardware using device drivers?

When do we add an hyphen (-) to a complex adjective word?

An Accountant Seeks the Help of a Mathematician

Rules about breaking the rules. How do I do it well?

Do I need life insurance if I can cover my own funeral costs?

Why do passenger jet manufacturers design their planes with stall prevention systems?

Is it possible that AIC = BIC?

I need to drive a 7/16" nut but am unsure how to use the socket I bought for my screwdriver

Use of プラトニック in this sentence?

Who is our nearest planetary neighbor, on average?

Humanity loses the vast majority of its technology, information, and population in the year 2122. How long does it take to rebuild itself?

Does this AnyDice function accurately calculate the number of ogres you make unconcious with three 4th-level castings of Sleep?

Why doesn't the EU now just force the UK to choose between referendum and no-deal?

Life insurance that covers only simultaneous/dual deaths

My adviser wants to be the first author



Why doesn't using two cd commands in bash script execute the second command?


Bash script: How to execute commands consecutively without waiting for the previous one?sudo bash can't execute scriptBash script doesn't execute command from PATHWhy doesn't this second nohup command run?Why won't this php script execute bash script?Script for Opening Two Terminals and Execute Three Consecutive CommandsHow to execute commands in gnuplot using shell script?FIFO commands in bash scriptRandom script using bashCreate bash script that allows you to choose multiple options instead of just one?













6















I have written a bash script which create series of directories, and clones a project to selected directories.



For that I need to cd to each directory (project 1 and project 2), but the script doesn't cd to the second directory and execute the command.



Instead, it stops after cd and cloning in theproject2 directory. Why it doesn't call the cd_project1 function in following code?



#!/bin/bash
#Get the current user name

function my_user_name()
current_user=$USER
echo " Current user is $current_user"


#Creating useful directories

function create_useful_directories()
if [[ ! -d "$scratch" ]]; then
echo "creating relevant directory"
mkdir -p /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2
else
echo "scratch directory already exists"
:
fi


#Going to project2 and cloning

function cd_project2()

cd /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2 &&
git clone https://username@bitbucket.org/teamsinspace/documentation-tests.git
exec bash


#Going to project1 directory and cloning
function cd_project1()

cd /home/"$current_user"/Downloads/scratch/"$current_user"/project1/ &&
git clone https://username@bitbucket.org/teamsinspace/documentation-tests.git
exec bash



#Running the functions
function main()

my_user_name
create_useful_directories
cd_project2
cd_project1

main


Terminal output:



~/Downloads$. ./bash_install_script.sh 
Current user is mihi
creating relevant directory
Cloning into 'documentation-tests'...
remote: Counting objects: 125, done.
remote: Compressing objects: 100% (115/115), done.
remote: Total 125 (delta 59), reused 0 (delta 0)
Receiving objects: 100% (125/125), 33.61 KiB | 362.00 KiB/s, done.
Resolving deltas: 100% (59/59), done.
~/Downloads/scratch/mihi/project1/project2$









share|improve this question









New contributor




Jenny is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Consider accepting one of the answers. If more than one answer is a solution to a question - accept the best one and up-vote another.

    – LeonidMew
    6 hours ago











  • Hi LeonidMew. Sorry I have no idea how to accept the answers. Both answers are equally good though.

    – Jenny
    6 hours ago






  • 1





    @Jenny, don't feel rushed. Read What should I do when someone answers my question? instead and act accordingly when you are satisfied. Just take your time, there is no reason to hurry. It's perfectly OK if you decide in a day or in a week or in whatever time it takes.

    – PerlDuck
    6 hours ago






  • 1





    @LeonidMew it's barely been 45 minutes since the question was asked, waiting longer is A-OK, a better answer might even come along (like PerlDuck's comment says, it just popped up while I was typing)

    – Xen2050
    6 hours ago






  • 2





    I'm curious what you intended for the exec bash to do.

    – Dennis Williamson
    5 hours ago















6















I have written a bash script which create series of directories, and clones a project to selected directories.



For that I need to cd to each directory (project 1 and project 2), but the script doesn't cd to the second directory and execute the command.



Instead, it stops after cd and cloning in theproject2 directory. Why it doesn't call the cd_project1 function in following code?



#!/bin/bash
#Get the current user name

function my_user_name()
current_user=$USER
echo " Current user is $current_user"


#Creating useful directories

function create_useful_directories()
if [[ ! -d "$scratch" ]]; then
echo "creating relevant directory"
mkdir -p /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2
else
echo "scratch directory already exists"
:
fi


#Going to project2 and cloning

function cd_project2()

cd /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2 &&
git clone https://username@bitbucket.org/teamsinspace/documentation-tests.git
exec bash


#Going to project1 directory and cloning
function cd_project1()

cd /home/"$current_user"/Downloads/scratch/"$current_user"/project1/ &&
git clone https://username@bitbucket.org/teamsinspace/documentation-tests.git
exec bash



#Running the functions
function main()

my_user_name
create_useful_directories
cd_project2
cd_project1

main


Terminal output:



~/Downloads$. ./bash_install_script.sh 
Current user is mihi
creating relevant directory
Cloning into 'documentation-tests'...
remote: Counting objects: 125, done.
remote: Compressing objects: 100% (115/115), done.
remote: Total 125 (delta 59), reused 0 (delta 0)
Receiving objects: 100% (125/125), 33.61 KiB | 362.00 KiB/s, done.
Resolving deltas: 100% (59/59), done.
~/Downloads/scratch/mihi/project1/project2$









share|improve this question









New contributor




Jenny is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Consider accepting one of the answers. If more than one answer is a solution to a question - accept the best one and up-vote another.

    – LeonidMew
    6 hours ago











  • Hi LeonidMew. Sorry I have no idea how to accept the answers. Both answers are equally good though.

    – Jenny
    6 hours ago






  • 1





    @Jenny, don't feel rushed. Read What should I do when someone answers my question? instead and act accordingly when you are satisfied. Just take your time, there is no reason to hurry. It's perfectly OK if you decide in a day or in a week or in whatever time it takes.

    – PerlDuck
    6 hours ago






  • 1





    @LeonidMew it's barely been 45 minutes since the question was asked, waiting longer is A-OK, a better answer might even come along (like PerlDuck's comment says, it just popped up while I was typing)

    – Xen2050
    6 hours ago






  • 2





    I'm curious what you intended for the exec bash to do.

    – Dennis Williamson
    5 hours ago













6












6








6








I have written a bash script which create series of directories, and clones a project to selected directories.



For that I need to cd to each directory (project 1 and project 2), but the script doesn't cd to the second directory and execute the command.



Instead, it stops after cd and cloning in theproject2 directory. Why it doesn't call the cd_project1 function in following code?



#!/bin/bash
#Get the current user name

function my_user_name()
current_user=$USER
echo " Current user is $current_user"


#Creating useful directories

function create_useful_directories()
if [[ ! -d "$scratch" ]]; then
echo "creating relevant directory"
mkdir -p /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2
else
echo "scratch directory already exists"
:
fi


#Going to project2 and cloning

function cd_project2()

cd /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2 &&
git clone https://username@bitbucket.org/teamsinspace/documentation-tests.git
exec bash


#Going to project1 directory and cloning
function cd_project1()

cd /home/"$current_user"/Downloads/scratch/"$current_user"/project1/ &&
git clone https://username@bitbucket.org/teamsinspace/documentation-tests.git
exec bash



#Running the functions
function main()

my_user_name
create_useful_directories
cd_project2
cd_project1

main


Terminal output:



~/Downloads$. ./bash_install_script.sh 
Current user is mihi
creating relevant directory
Cloning into 'documentation-tests'...
remote: Counting objects: 125, done.
remote: Compressing objects: 100% (115/115), done.
remote: Total 125 (delta 59), reused 0 (delta 0)
Receiving objects: 100% (125/125), 33.61 KiB | 362.00 KiB/s, done.
Resolving deltas: 100% (59/59), done.
~/Downloads/scratch/mihi/project1/project2$









share|improve this question









New contributor




Jenny is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












I have written a bash script which create series of directories, and clones a project to selected directories.



For that I need to cd to each directory (project 1 and project 2), but the script doesn't cd to the second directory and execute the command.



Instead, it stops after cd and cloning in theproject2 directory. Why it doesn't call the cd_project1 function in following code?



#!/bin/bash
#Get the current user name

function my_user_name()
current_user=$USER
echo " Current user is $current_user"


#Creating useful directories

function create_useful_directories()
if [[ ! -d "$scratch" ]]; then
echo "creating relevant directory"
mkdir -p /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2
else
echo "scratch directory already exists"
:
fi


#Going to project2 and cloning

function cd_project2()

cd /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2 &&
git clone https://username@bitbucket.org/teamsinspace/documentation-tests.git
exec bash


#Going to project1 directory and cloning
function cd_project1()

cd /home/"$current_user"/Downloads/scratch/"$current_user"/project1/ &&
git clone https://username@bitbucket.org/teamsinspace/documentation-tests.git
exec bash



#Running the functions
function main()

my_user_name
create_useful_directories
cd_project2
cd_project1

main


Terminal output:



~/Downloads$. ./bash_install_script.sh 
Current user is mihi
creating relevant directory
Cloning into 'documentation-tests'...
remote: Counting objects: 125, done.
remote: Compressing objects: 100% (115/115), done.
remote: Total 125 (delta 59), reused 0 (delta 0)
Receiving objects: 100% (125/125), 33.61 KiB | 362.00 KiB/s, done.
Resolving deltas: 100% (59/59), done.
~/Downloads/scratch/mihi/project1/project2$






bash scripts cd-command






share|improve this question









New contributor




Jenny is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Jenny is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 10 mins ago









Olorin

2,657924




2,657924






New contributor




Jenny is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 7 hours ago









JennyJenny

313




313




New contributor




Jenny is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Jenny is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Jenny is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • Consider accepting one of the answers. If more than one answer is a solution to a question - accept the best one and up-vote another.

    – LeonidMew
    6 hours ago











  • Hi LeonidMew. Sorry I have no idea how to accept the answers. Both answers are equally good though.

    – Jenny
    6 hours ago






  • 1





    @Jenny, don't feel rushed. Read What should I do when someone answers my question? instead and act accordingly when you are satisfied. Just take your time, there is no reason to hurry. It's perfectly OK if you decide in a day or in a week or in whatever time it takes.

    – PerlDuck
    6 hours ago






  • 1





    @LeonidMew it's barely been 45 minutes since the question was asked, waiting longer is A-OK, a better answer might even come along (like PerlDuck's comment says, it just popped up while I was typing)

    – Xen2050
    6 hours ago






  • 2





    I'm curious what you intended for the exec bash to do.

    – Dennis Williamson
    5 hours ago

















  • Consider accepting one of the answers. If more than one answer is a solution to a question - accept the best one and up-vote another.

    – LeonidMew
    6 hours ago











  • Hi LeonidMew. Sorry I have no idea how to accept the answers. Both answers are equally good though.

    – Jenny
    6 hours ago






  • 1





    @Jenny, don't feel rushed. Read What should I do when someone answers my question? instead and act accordingly when you are satisfied. Just take your time, there is no reason to hurry. It's perfectly OK if you decide in a day or in a week or in whatever time it takes.

    – PerlDuck
    6 hours ago






  • 1





    @LeonidMew it's barely been 45 minutes since the question was asked, waiting longer is A-OK, a better answer might even come along (like PerlDuck's comment says, it just popped up while I was typing)

    – Xen2050
    6 hours ago






  • 2





    I'm curious what you intended for the exec bash to do.

    – Dennis Williamson
    5 hours ago
















Consider accepting one of the answers. If more than one answer is a solution to a question - accept the best one and up-vote another.

– LeonidMew
6 hours ago





Consider accepting one of the answers. If more than one answer is a solution to a question - accept the best one and up-vote another.

– LeonidMew
6 hours ago













Hi LeonidMew. Sorry I have no idea how to accept the answers. Both answers are equally good though.

– Jenny
6 hours ago





Hi LeonidMew. Sorry I have no idea how to accept the answers. Both answers are equally good though.

– Jenny
6 hours ago




1




1





@Jenny, don't feel rushed. Read What should I do when someone answers my question? instead and act accordingly when you are satisfied. Just take your time, there is no reason to hurry. It's perfectly OK if you decide in a day or in a week or in whatever time it takes.

– PerlDuck
6 hours ago





@Jenny, don't feel rushed. Read What should I do when someone answers my question? instead and act accordingly when you are satisfied. Just take your time, there is no reason to hurry. It's perfectly OK if you decide in a day or in a week or in whatever time it takes.

– PerlDuck
6 hours ago




1




1





@LeonidMew it's barely been 45 minutes since the question was asked, waiting longer is A-OK, a better answer might even come along (like PerlDuck's comment says, it just popped up while I was typing)

– Xen2050
6 hours ago





@LeonidMew it's barely been 45 minutes since the question was asked, waiting longer is A-OK, a better answer might even come along (like PerlDuck's comment says, it just popped up while I was typing)

– Xen2050
6 hours ago




2




2





I'm curious what you intended for the exec bash to do.

– Dennis Williamson
5 hours ago





I'm curious what you intended for the exec bash to do.

– Dennis Williamson
5 hours ago










2 Answers
2






active

oldest

votes


















13














The culprits are your exec bash statements in some of your functions.
The exec statement is a bit weird and not easily understood in the first place.
It means: execute the following command instead of the currently running
command/shell/script from here on
. That is: it replaces the current shell
script (in your case) with an instance of bash and it never returns.



You can try this out with a shell and issue



exec sleep 5


This will replace your current shell (the bash) with the command sleep 5
and when that command returns (after 5 seconds) your window will close because
the shell has been replaced with sleep 5.



Same with your script: If you put exec something into your script, the script
gets replaced with something and when that something stops execution, the
whole script stops.



Simply dropping the exec bash statements should do.






share|improve this answer























  • Oh thanks! it worked. Never thought it would be that simpler. Jenny :)

    – Jenny
    6 hours ago











  • @Jenny Nice to hear. Anecdote: The Perl language also has an exec statement with the same behaviour and if you put some statements after an exec statement (like exec something; print "This won't run";) then Perl will warn you that the print statement will never get executed.

    – PerlDuck
    6 hours ago











  • BTW congrats on using && after cd, (if you don’t use set -e). I have seen Code like cd tmp; rm -rf * fail horrible

    – eckes
    4 hours ago


















8














From help exec:




exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
Replace the shell with the given command.

Execute COMMAND, replacing this shell with the specified program.
ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,
any redirections take effect in the current shell.



The key word here is replace - if you exec bash from inside a script, no further script execution can occur.






share|improve this answer























  • Thanks! It works.

    – Jenny
    6 hours ago










Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "89"
;
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: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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
);



);






Jenny is a new contributor. Be nice, and check out our Code of Conduct.









draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1125755%2fwhy-doesnt-using-two-cd-commands-in-bash-script-execute-the-second-command%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









13














The culprits are your exec bash statements in some of your functions.
The exec statement is a bit weird and not easily understood in the first place.
It means: execute the following command instead of the currently running
command/shell/script from here on
. That is: it replaces the current shell
script (in your case) with an instance of bash and it never returns.



You can try this out with a shell and issue



exec sleep 5


This will replace your current shell (the bash) with the command sleep 5
and when that command returns (after 5 seconds) your window will close because
the shell has been replaced with sleep 5.



Same with your script: If you put exec something into your script, the script
gets replaced with something and when that something stops execution, the
whole script stops.



Simply dropping the exec bash statements should do.






share|improve this answer























  • Oh thanks! it worked. Never thought it would be that simpler. Jenny :)

    – Jenny
    6 hours ago











  • @Jenny Nice to hear. Anecdote: The Perl language also has an exec statement with the same behaviour and if you put some statements after an exec statement (like exec something; print "This won't run";) then Perl will warn you that the print statement will never get executed.

    – PerlDuck
    6 hours ago











  • BTW congrats on using && after cd, (if you don’t use set -e). I have seen Code like cd tmp; rm -rf * fail horrible

    – eckes
    4 hours ago















13














The culprits are your exec bash statements in some of your functions.
The exec statement is a bit weird and not easily understood in the first place.
It means: execute the following command instead of the currently running
command/shell/script from here on
. That is: it replaces the current shell
script (in your case) with an instance of bash and it never returns.



You can try this out with a shell and issue



exec sleep 5


This will replace your current shell (the bash) with the command sleep 5
and when that command returns (after 5 seconds) your window will close because
the shell has been replaced with sleep 5.



Same with your script: If you put exec something into your script, the script
gets replaced with something and when that something stops execution, the
whole script stops.



Simply dropping the exec bash statements should do.






share|improve this answer























  • Oh thanks! it worked. Never thought it would be that simpler. Jenny :)

    – Jenny
    6 hours ago











  • @Jenny Nice to hear. Anecdote: The Perl language also has an exec statement with the same behaviour and if you put some statements after an exec statement (like exec something; print "This won't run";) then Perl will warn you that the print statement will never get executed.

    – PerlDuck
    6 hours ago











  • BTW congrats on using && after cd, (if you don’t use set -e). I have seen Code like cd tmp; rm -rf * fail horrible

    – eckes
    4 hours ago













13












13








13







The culprits are your exec bash statements in some of your functions.
The exec statement is a bit weird and not easily understood in the first place.
It means: execute the following command instead of the currently running
command/shell/script from here on
. That is: it replaces the current shell
script (in your case) with an instance of bash and it never returns.



You can try this out with a shell and issue



exec sleep 5


This will replace your current shell (the bash) with the command sleep 5
and when that command returns (after 5 seconds) your window will close because
the shell has been replaced with sleep 5.



Same with your script: If you put exec something into your script, the script
gets replaced with something and when that something stops execution, the
whole script stops.



Simply dropping the exec bash statements should do.






share|improve this answer













The culprits are your exec bash statements in some of your functions.
The exec statement is a bit weird and not easily understood in the first place.
It means: execute the following command instead of the currently running
command/shell/script from here on
. That is: it replaces the current shell
script (in your case) with an instance of bash and it never returns.



You can try this out with a shell and issue



exec sleep 5


This will replace your current shell (the bash) with the command sleep 5
and when that command returns (after 5 seconds) your window will close because
the shell has been replaced with sleep 5.



Same with your script: If you put exec something into your script, the script
gets replaced with something and when that something stops execution, the
whole script stops.



Simply dropping the exec bash statements should do.







share|improve this answer












share|improve this answer



share|improve this answer










answered 7 hours ago









PerlDuckPerlDuck

7,06611536




7,06611536












  • Oh thanks! it worked. Never thought it would be that simpler. Jenny :)

    – Jenny
    6 hours ago











  • @Jenny Nice to hear. Anecdote: The Perl language also has an exec statement with the same behaviour and if you put some statements after an exec statement (like exec something; print "This won't run";) then Perl will warn you that the print statement will never get executed.

    – PerlDuck
    6 hours ago











  • BTW congrats on using && after cd, (if you don’t use set -e). I have seen Code like cd tmp; rm -rf * fail horrible

    – eckes
    4 hours ago

















  • Oh thanks! it worked. Never thought it would be that simpler. Jenny :)

    – Jenny
    6 hours ago











  • @Jenny Nice to hear. Anecdote: The Perl language also has an exec statement with the same behaviour and if you put some statements after an exec statement (like exec something; print "This won't run";) then Perl will warn you that the print statement will never get executed.

    – PerlDuck
    6 hours ago











  • BTW congrats on using && after cd, (if you don’t use set -e). I have seen Code like cd tmp; rm -rf * fail horrible

    – eckes
    4 hours ago
















Oh thanks! it worked. Never thought it would be that simpler. Jenny :)

– Jenny
6 hours ago





Oh thanks! it worked. Never thought it would be that simpler. Jenny :)

– Jenny
6 hours ago













@Jenny Nice to hear. Anecdote: The Perl language also has an exec statement with the same behaviour and if you put some statements after an exec statement (like exec something; print "This won't run";) then Perl will warn you that the print statement will never get executed.

– PerlDuck
6 hours ago





@Jenny Nice to hear. Anecdote: The Perl language also has an exec statement with the same behaviour and if you put some statements after an exec statement (like exec something; print "This won't run";) then Perl will warn you that the print statement will never get executed.

– PerlDuck
6 hours ago













BTW congrats on using && after cd, (if you don’t use set -e). I have seen Code like cd tmp; rm -rf * fail horrible

– eckes
4 hours ago





BTW congrats on using && after cd, (if you don’t use set -e). I have seen Code like cd tmp; rm -rf * fail horrible

– eckes
4 hours ago













8














From help exec:




exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
Replace the shell with the given command.

Execute COMMAND, replacing this shell with the specified program.
ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,
any redirections take effect in the current shell.



The key word here is replace - if you exec bash from inside a script, no further script execution can occur.






share|improve this answer























  • Thanks! It works.

    – Jenny
    6 hours ago















8














From help exec:




exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
Replace the shell with the given command.

Execute COMMAND, replacing this shell with the specified program.
ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,
any redirections take effect in the current shell.



The key word here is replace - if you exec bash from inside a script, no further script execution can occur.






share|improve this answer























  • Thanks! It works.

    – Jenny
    6 hours ago













8












8








8







From help exec:




exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
Replace the shell with the given command.

Execute COMMAND, replacing this shell with the specified program.
ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,
any redirections take effect in the current shell.



The key word here is replace - if you exec bash from inside a script, no further script execution can occur.






share|improve this answer













From help exec:




exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
Replace the shell with the given command.

Execute COMMAND, replacing this shell with the specified program.
ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,
any redirections take effect in the current shell.



The key word here is replace - if you exec bash from inside a script, no further script execution can occur.







share|improve this answer












share|improve this answer



share|improve this answer










answered 7 hours ago









steeldriversteeldriver

69.2k11114185




69.2k11114185












  • Thanks! It works.

    – Jenny
    6 hours ago

















  • Thanks! It works.

    – Jenny
    6 hours ago
















Thanks! It works.

– Jenny
6 hours ago





Thanks! It works.

– Jenny
6 hours ago










Jenny is a new contributor. Be nice, and check out our Code of Conduct.









draft saved

draft discarded


















Jenny is a new contributor. Be nice, and check out our Code of Conduct.












Jenny is a new contributor. Be nice, and check out our Code of Conduct.











Jenny is a new contributor. Be nice, and check out our Code of Conduct.














Thanks for contributing an answer to Ask Ubuntu!


  • 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.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1125755%2fwhy-doesnt-using-two-cd-commands-in-bash-script-execute-the-second-command%23new-answer', 'question_page');

);

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







Popular posts from this blog

Are there any AGPL-style licences that require source code modifications to be public? Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Force derivative works to be publicAre there any GPL like licenses for Apple App Store?Do you violate the GPL if you provide source code that cannot be compiled?GPL - is it distribution to use libraries in an appliance loaned to customers?Distributing App for free which uses GPL'ed codeModifications of server software under GPL, with web/CLI interfaceDoes using an AGPLv3-licensed library prevent me from dual-licensing my own source code?Can I publish only select code under GPLv3 from a private project?Is there published precedent regarding the scope of covered work that uses AGPL software?If MIT licensed code links to GPL licensed code what should be the license of the resulting binary program?If I use a public API endpoint that has its source code licensed under AGPL in my app, do I need to disclose my source?

2013 GY136 Descoberta | Órbita | Referências Menu de navegação«List Of Centaurs and Scattered-Disk Objects»«List of Known Trans-Neptunian Objects»

Button changing it's text & action. Good or terrible? The 2019 Stack Overflow Developer Survey Results Are Inchanging text on user mouseoverShould certain functions be “hard to find” for powerusers to discover?Custom liking function - do I need user login?Using different checkbox style for different checkbox behaviorBest Practices: Save and Exit in Software UIInteraction with remote validated formMore efficient UI to progress the user through a complicated process?Designing a popup notice for a gameShould bulk-editing functions be hidden until a table row is selected, or is there a better solution?Is it bad practice to disable (replace) the context menu?