Execute o comando do arquivo no shell atual [duplicado]

8

Eu quero executar o comando do arquivo (que é script) no shell atual no terminal.

Exemplo: eu tenho o arquivo ch_dir contém o seguinte:

#!/bin/bash
cd /usr

Agora, se eu executar o arquivo normalmente como segue, ele executa comandos no shell diferente :

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

Aqui cd /user é executado em um shell diferente.

Mas eu quero executar no shell atual. Como eu faço isso?

Observação: aqui cd é usado apenas para explicar. O objetivo da pergunta é executar qualquer comando no shell atual

    
por Pandya 24.08.2014 / 15:02

2 respostas

14

Use o comando interno source (de help -m source ):

  

source - Executa comandos de um arquivo no shell atual.

Exemplo de execução mencionado na pergunta:

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

Aqui você pode ver cd /usr é executado no shell atual e, portanto, o diretório do shell atual foi alterado!

Espero que isso ajude a executar a entrada de comando do arquivo no shell atual.

    
por Pandya 24.08.2014 / 15:02
5

Basta executar o script com . da seguinte forma:

pandya@pandya-desktop:~$ . ./ch_dir
    
por mehdy 24.08.2014 / 19:05