[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Salvar wd da ultima sessao do bash
From: |
Julio C. Neves |
Subject: |
Re: [shell-script] Salvar wd da ultima sessao do bash |
Date: |
Fri, 19 Mar 2010 11:50:07 -0300 |
Bah Tchê,
se eu entendi bem, em tempo de login vc quer voltar para o diretório em que
estava qdo deu logout. se for isso coloque a seguinte linha no ~/.bashrc:
cd $(cat ~/.lwd 2> /dev/null)
trap "echo $PWD > ~/.lwd" 0 15
isto é, o trap salvará o diretório corrente no seu arquivo (~/.lwd) qdo sair
com sinal 0, isto é, o logout comum ou um sinal 15 (kill). O cd no .bashrc
te mandará para o diretório armazenado. Desviei o erro para /dev/null, pq a
primeira vez que executar essa linha, não existirá este arquivo.
Para ficar mais porreta, após o CD vc poderia remover ~/.lwd e ao invés de
mandar a saída de erro para as cucuias, testar se ele existe e, caso
contrário, colocar o $HOME.
[ -d ~/.lwd ] || echo $HOME > ~/.lwd
cd $(cat ~/.lwd)
trap "echo $PWD > ~/.lwd" 0 15
Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- SP turma de Shell em 29/03 - ligue (11)2125-4747;
- Floripa turma Shell 12/04 http://www.seventreinamentos.com.br;
- DF turma de Shell em 17/04 - ligue (61) 3223-3000;
- Aracaju turma de Shell em 12/05 - address@hidden;
- RJ turma de Shell em 14/06 - ligue (21)2210-6061;
- Turmas fechadas em outras cidades ligue (21) 8112-9988.
Em 19 de março de 2010 11:21, Arkanon <address@hidden> escreveu:
>
>
> Mas bash, galera! (sim, eu sou do sul :-p)
>
> Eu tenho a impressao (impressao!) que em algum shell que eu usei em
> algum momento do passado havia uma caracteristica habilitada que fazia
> ele guardar em algum lugar o ultimo diretorio de trabalho. Como
> resultado, sempre que abriamos uma nova sessao, automaticamente
> caíamos no ultimo diretorio "entrado" pelas varias sessoes abertas.
>
> Talvez fosse no csh do FreeBSD, nao sei :-p
>
> Enfim. Alguem ja viu ou ouviu falar disso?
>
> De qualquer forma, resolvi implementar essa caracteristica, e cheguei
> ao seguinte resultado;
>
> Em algum lugar de algum dos scripts de inicializacao (global ou
> pessoal) do bash colocamos algo como:
>
> --
>
> fun_cd()
> {
> builtin cd "${1:-$HOME}" && pwd >| ~/.lwd
> }
>
> alias cd="fun_cd"
>
> [ -e ~/.lwd ] && cd `cat ~/.lwd`
>
> --
>
> Ou seja: transformamos o comando nativo 'cd' num alias para uma funcao
> 'fun_cd', a qual executa o comando nativo 'cd' passando o diretorio de
> parametro (ou usa o diretorio $HOME como default). Se a entrada no
> diretorio foi feita com sucesso, armazena esse diretorio no arquivo
> ~/.lwd (last working directory ;-)
> A cada nova sessao de login no bash, eh testado se existe o arquivo
> ~/.lwd e, se for o caso, eh dado um cd para la.
>
> Alguem conhece uma maneira mais "nativa" de obter essa caracteristica?
>
> []
>
> --
> (o_ ------------------ __o
> //\ address@hidden <arkanon%40lsd.org.br> _`\<,
> V_/_ --- www.lsd.org.br (_)/(_)
> ---------------------------------
>
>
[As partes desta mensagem que não continham texto foram removidas]