Como alterar o diretório usando o script


10

Eu tenho esse script

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

funciona como esperado, mas eu gostaria que esse script me transportasse para / home / user / somedir, mas permaneço no mesmo diretório.

Como escrever um script que me transportará (no gnome-terminal) para / home / user / somedir?


Respostas:


14

Você precisa do sourceseu script. Caso contrário, ele será executado em um subshell separado, alterando o diretório de trabalho do subshell, mas não do shell em que você o executa.

Para obtê-lo:

. myfile.sh

ou

source myfile.sh

Você pode ler mais aqui


Eu apenas adicionaria isso ... UAdadapter, se você estivesse executando o script shelll como sh myfile.sh ou ./myfile.sh, ele seria executado como danjil descrito. Qualquer uma das opções de danjil deve funcionar para você.
amigos estão dizendo sobre itnet7

3

Use exec bashno final

Um script bash opera em seu ambiente atual ou em seus filhos, mas nunca em seu ambiente pai.

No entanto, essa pergunta geralmente é feita porque alguém deseja ser deixado em um prompt do bash em um determinado diretório após a execução de um script bash de outro diretório.

Se for esse o caso, simplesmente execute uma instância do bash filho no final do script:

#!/bin/bash
cd /home/user/somedir
exec bash
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.