简体   繁体   中英

How to execute new bash command inside shell script file?

how can I put the follow script to work properly?

1  #/bin/bash
2
3  # some commands
4
5  bash
6  # a lot of commands
7  # ...
8  exit
9  
10 bash
11 # A lot of other commands
12 # ...
13 exit
14 
15 exit 0

The problem is that when executing the script in shell, a new interactive bash shell is entered and the execution stopped right there waiting for standard input. As the sub-environment may not be BASH in practice, bash command in line 4 and 9 are just examples and that's why I need a new solution other than putting those commands into separate files and invoke. Thanks for any help.

This is the documented behaviour. If you execute a mere bash , you get an interactive shell. If you want to run several bash commands in a child process - which probably is what you want, since you tagged your question subshell , you write

bash FILENAME

where FILENAME is the name of the file which contains the commands. If you want to run several bash commands inside the current process, you write one of

source FILENAME
. FILENAME

The differences between source and . are minor, and you find them described in the bash man page.

If you want to run several commands in a child process, without putting them into a separate file, you can do it with

(
   some command
   some other command
)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM