Estou tentando criar alguns scripts que mudariam o diretório de trabalho do shell / terminal principal. Não é capaz de fazer isso. Eu tentei o seguinte
Arquivo p1.sh
#!/bin/bash
cd /home/mtk/work/project1
Arquivo code.sh
#!/bin/bash
cd /home/mtk/templates/resusable/sampleCodes
Mas estou ciente de que o texto acima mudaria apenas para si, ou seja, o que está sendo executado atualmente, o que seria p1.sh
ou code.sh
neste caso.
Por favor, deixe-me saber, como eu seria capaz de mudar o diretório de trabalho atual para o shell de chamada pai.
Exemplo de execução e expectativa:
$ pwd
/home/mtk
$ p1.sh
$ pwd
/home/mtk ### --> Expected /home/mtk/work/project1
Nota
Meu caso de uso é: Eu gostaria de fazer algum processamento e colocar o prompt em um diretório pré-definido.
EDITAR
Eu vejo por que isso não funcionaria. E alias
parece ser a solução para esse caso. Mas eu gostaria de expandir, minha pergunta:
Eu preciso criar um script que altere o diretório de trabalho do shell pai dinamicamente. O script será digamos mycd.sh
. Ele teria argumentos de linha de comando como
mycd.sh -c/-p1/-p2/
ou alguns outros argumentos definidos pelo usuário.
Dar -c
mudaria o diretório de trabalho do shell para o respectivo diretório. O arquivo mycd.sh
seria parecido com
.. some processing
# parameter parsing
if [ $param1 -eq "c" ]; then
# change working dir of parent here
else
... other conditions
Eu acho que deve haver alguma maneira de alterar o diretório de trabalho do shell.
Por favor, deixe-me saber, se alguma coisa não estiver clara.