Escreva como uma função de shell (por exemplo, em seu .bashrc) em vez de um arquivo de script.
Caso de uso: Estou trabalhando no terminal em / path / com / a / very / long / name e desejo alterar para outro diretório que esteja profundamente aninhado. Mas eu não conheço o caminho pela memória. Então eu quero navegar através de uma interface gráfica para permitir-me descobrir onde eu preciso navegar.
Eu criei este script:
#!/bin/sh
echo "change working directory"
MYDIRECTORY=$(kdialog --getexistingdirectory ::label1);
if [ "$?" = 0 ]; then
cd "$MYDIRECTORY"
elif [ "$?" = 1 ]; then
echo "action canceled";
else
echo "ERROR";
fi;
exit 0
Infelizmente, isso não funciona. Quando o script sai, permaneço no diretório original no terminal. Eu aprendi que isso é porque meu diretório original foi restaurado quando o subshell que executou o comando cd sai.
Então, como posso alcançar meu objetivo?
Tags bash cd-command shell-script