shell-script-pt
[Top][All Lists]
Advanced

[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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]