Esegui il comando dal file nella shell corrente [duplicato]

8

Voglio eseguire il comando dal file (che è uno script) nella shell corrente nel terminale.

Esempio: il file ch_dir contiene quanto segue:

#!/bin/bash
cd /usr

Ora se eseguo file normalmente come segue, esegue comandi in shell diversa :

[email protected]:~$ ./ch_dir
[email protected]:~$

Qui cd /user viene eseguito in una shell diversa.

Ma voglio eseguire nella shell corrente. Come faccio?

Nota: qui cd viene utilizzato solo per spiegare. L'obiettivo di Question è eseguire qualsiasi comando nella shell corrente

    
posta Pandya 24.08.2014 - 15:02

2 risposte

14

Utilizza il comando incorporato source (da help -m source ):

  

source - Esegui comandi da un file nella shell corrente.

Esempio di esecuzione menzionato nella domanda:

[email protected]:~$ source ch_dir
[email protected]:/usr$ 

Qui puoi vedere cd /usr è eseguito nella shell corrente e quindi la directory della shell corrente è cambiata!

Spero che questo aiuti a eseguire l'input di comando dal file nella shell corrente.

    
risposta data Pandya 24.08.2014 - 15:02
5

Basta eseguire lo script con un . come questo:

[email protected]:~$ . ./ch_dir
    
risposta data mehdy 24.08.2014 - 19:05

Leggi altre domande sui tag