8

I want to executed command from file (which is script) in current shell in terminal.

Example: I have file ch_dir contains following:

#!/bin/bash
cd /usr

Now if I execute file usually as following then it executes commands in different shell:

pandya@pandya-desktop:~$ ./ch_dir
pandya@pandya-desktop:~$

Here cd /user is executed in different shell.

But I want to execute in Current shell. How do I do that?

Note: Here cd is only used to explain. Question's aim is to execute any command in current shell

Pandya
  • 37,289

2 Answers2

17

Use builtin command source (from help -m source):

source - Execute commands from a file in the current shell.

Example of execution mentioned in Question:

pandya@pandya-desktop:~$ source ch_dir
pandya@pandya-desktop:/usr$ 

Here you can see cd /usr is executed in current shell and hence directory of current shell changed!

Hope this will help to execute command input from file in current shell.

Pandya
  • 37,289
5

Just run the script with a . like this:

pandya@pandya-desktop:~$ . ./ch_dir
Eliah Kagan
  • 119,640
mehdy
  • 159