Come cambiare directory usando lo script


10

Ho questa sceneggiatura

#!/bin/bash
cd /home/user/somedir
pwd

funziona come previsto, ma vorrei che questo script mi ​​trasportasse in / home / user / somedir, ma rimango nella stessa directory.

Come scrivere uno script che mi trasporterà (in gnome-terminal) a / home / user / somedir?


Risposte:


14

Hai bisogno della sourcetua sceneggiatura. In caso contrario, verrà eseguito in una subshell separata, modificando la directory di lavoro della subshell ma non della shell in cui la si esegue.

Per fonte:

. myfile.sh

o

source myfile.sh

Puoi leggere di più qui


Stavo per aggiungere che .... UAdadapter se avessi eseguito lo script shelll come sh myfile.sh o ./myfile.sh, sarebbe stato eseguito come descritto da Danjil. Entrambe le opzioni di Danjil dovrebbero funzionare per te.
itnet7,

3

Utilizzare exec bashalla fine

Uno script bash opera sul suo ambiente attuale o su quello dei suoi figli, ma mai sul suo ambiente genitore.

Tuttavia, questa domanda viene spesso posta perché si desidera essere lasciati al prompt di bash in una determinata directory dopo l'esecuzione di uno script bash da un'altra directory.

In questo caso, esegui semplicemente un'istanza bash figlio alla fine dello script:

#!/bin/bash
cd /home/user/somedir
exec bash
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.