Why using two cd commands in bash script does not execute the second commandBash script: How to execute commands consecutively without waiting for the previous one?Why does “if [ 0 ]” execute the “then” statement in bash script?sudo bash can't execute scriptWhy does this bash script not work?Bash script doesn't execute command from PATHWhy won't this php script execute bash script?Bash script: command not foundScript for Opening Two Terminals and Execute Three Consecutive CommandsFIFO commands in bash scriptCreate bash script that allows you to choose multiple options instead of just one?

Instead of Universal Basic Income, why not Universal Basic NEEDS?

Bastion server: use TCP forwarding VS placing private key on server

How do anti-virus programs start at Windows boot?

Theorems like the Lovász Local Lemma?

Sword in the Stone story where the sword was held in place by electromagnets

Provisioning profile doesn't include the application-identifier and keychain-access-groups entitlements

Why is a Java array index expression evaluated before checking if the array reference expression is null?

Rejected in 4th interview round citing insufficient years of experience

Why is stat::st_size 0 for devices but at the same time lseek defines the device size correctly?

Bash replace string at multiple places in a file from command line

Identifying the interval from A♭ to D♯

What is a good source for large tables on the properties of water?

Cultural lunch issues

Brexit - No Deal Rejection

At what level can a dragon innately cast its spells?

Is having access to past exams cheating and, if yes, could it be proven just by a good grade?

Is Mortgage interest accrued after a December payment tax deductible?

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

My story is written in English, but is set in my home country. What language should I use for the dialogue?

Can anyone tell me why this program fails?

How to get the name of the database a stored procedure is executed in within that stored procedure while it's executing?

How to generate globally unique ids for different tables of the same database?

Meaning of "SEVERA INDEOVI VAS" from 3rd Century slab

Fill color and outline color with the same value



Why using two cd commands in bash script does not execute the second command


Bash script: How to execute commands consecutively without waiting for the previous one?Why does “if [ 0 ]” execute the “then” statement in bash script?sudo bash can't execute scriptWhy does this bash script not work?Bash script doesn't execute command from PATHWhy won't this php script execute bash script?Bash script: command not foundScript for Opening Two Terminals and Execute Three Consecutive CommandsFIFO commands in bash scriptCreate bash script that allows you to choose multiple options instead of just one?













3















So I have written a bash script which create series of directories and clone a project to selected directories. But for that I need to cd to each directory (project 1 and project 2) but 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
    33 mins ago











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

    – Jenny
    28 mins ago











  • At the left of each answer there is a score and up-vote/down-vote button, below buttons is a gray check-mark, click on it.

    – LeonidMew
    23 mins 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
    22 mins 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
    21 mins ago















3















So I have written a bash script which create series of directories and clone a project to selected directories. But for that I need to cd to each directory (project 1 and project 2) but 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
    33 mins ago











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

    – Jenny
    28 mins ago











  • At the left of each answer there is a score and up-vote/down-vote button, below buttons is a gray check-mark, click on it.

    – LeonidMew
    23 mins 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
    22 mins 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
    21 mins ago













3












3








3








So I have written a bash script which create series of directories and clone a project to selected directories. But for that I need to cd to each directory (project 1 and project 2) but 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.












So I have written a bash script which create series of directories and clone a project to selected directories. But for that I need to cd to each directory (project 1 and project 2) but 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 1 hour ago







Jenny













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 1 hour ago









JennyJenny

162




162




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
    33 mins ago











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

    – Jenny
    28 mins ago











  • At the left of each answer there is a score and up-vote/down-vote button, below buttons is a gray check-mark, click on it.

    – LeonidMew
    23 mins 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
    22 mins 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
    21 mins 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
    33 mins ago











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

    – Jenny
    28 mins ago











  • At the left of each answer there is a score and up-vote/down-vote button, below buttons is a gray check-mark, click on it.

    – LeonidMew
    23 mins 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
    22 mins 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
    21 mins 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
33 mins 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
33 mins ago













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

– Jenny
28 mins ago





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

– Jenny
28 mins ago













At the left of each answer there is a score and up-vote/down-vote button, below buttons is a gray check-mark, click on it.

– LeonidMew
23 mins ago





At the left of each answer there is a score and up-vote/down-vote button, below buttons is a gray check-mark, click on it.

– LeonidMew
23 mins 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
22 mins 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
22 mins 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
21 mins 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
21 mins ago










2 Answers
2






active

oldest

votes


















5














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
    37 mins 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
    27 mins ago


















4














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
    37 mins 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-using-two-cd-commands-in-bash-script-does-not-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









5














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
    37 mins 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
    27 mins ago















5














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
    37 mins 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
    27 mins ago













5












5








5







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 42 mins ago









PerlDuckPerlDuck

6,94111535




6,94111535












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

    – Jenny
    37 mins 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
    27 mins ago

















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

    – Jenny
    37 mins 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
    27 mins ago
















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

– Jenny
37 mins ago





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

– Jenny
37 mins 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
27 mins 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
27 mins ago













4














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
    37 mins ago















4














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
    37 mins ago













4












4








4







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 50 mins ago









steeldriversteeldriver

69.2k11114185




69.2k11114185












  • Thanks! It works.

    – Jenny
    37 mins ago

















  • Thanks! It works.

    – Jenny
    37 mins ago
















Thanks! It works.

– Jenny
37 mins ago





Thanks! It works.

– Jenny
37 mins 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-using-two-cd-commands-in-bash-script-does-not-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

Can not update quote_id field of “quote_item” table magento 2Magento 2.1 - We can't remove the item. (Shopping Cart doesnt allow us to remove items before becomes empty)Add value for custom quote item attribute using REST apiREST API endpoint v1/carts/cartId/items always returns error messageCorrect way to save entries to databaseHow to remove all associated quote objects of a customer completelyMagento 2 - Save value from custom input field to quote_itemGet quote_item data using quote id and product id filter in Magento 2How to set additional data to quote_item table from controller in Magento 2?What is the purpose of additional_data column in quote_item table in magento2Set Custom Price to Quote item magento2 from controller

How to solve knockout JS error in Magento 2 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?(Magento2) knockout.js:3012 Uncaught ReferenceError: Unable to process bindingUnable to process binding Knockout.js magento 2Cannot read property `scopeLabel` of undefined on Product Detail PageCan't get Customer Data on frontend in Magento 2Magento2 Order Summary - unable to process bindingKO templates are not loading in Magento 2.1 applicationgetting knockout js error magento 2Product grid not load -— Unable to process binding Knockout.js magento 2Product form not loaded in magento2Uncaught ReferenceError: Unable to process binding “if: function()return (isShowLegend()) ” magento 2

Nissan Patrol Зміст Перше покоління — 4W60 (1951-1960) | Друге покоління — 60 series (1960-1980) | Третє покоління (1980–2002) | Четверте покоління — Y60 (1987–1998) | П'яте покоління — Y61 (1997–2013) | Шосте покоління — Y62 (2010- ) | Посилання | Зноски | Навігаційне менюОфіційний український сайтТест-драйв Nissan Patrol 2010 7-го поколінняNissan PatrolКак мы тестировали Nissan Patrol 2016рвиправивши або дописавши її