/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
psuh / pop af mapper i Linux?
Fra : HG


Dato : 17-07-07 09:41

Jeg vil gerne lave en push og pop mulighed på min Linux således, at jeg kan
pushe én eller flere mapper for derefter at poppe dem i den korrekte
rækkefølge.
Jeg har p.t. denne kode i min login fil:

alias push='pwd | tee -a /tmp/push'
alias pop='cd | cat /tmp/push | head --lines=-1 > /tmp/push'

Den virker bare ikke for godt. Den fjerner fint en linie fra /tmp/push filen
men den cd'er ikke dertil?



 
 
Peter Makholm (17-07-2007)
Kommentar
Fra : Peter Makholm


Dato : 17-07-07 10:36

"HG" <as234@REMOVE.gmail.com> writes:

> alias push='pwd | tee -a /tmp/push'
> alias pop='cd | cat /tmp/push | head --lines=-1 > /tmp/push'
>
> Den virker bare ikke for godt. Den fjerner fint en linie fra /tmp/push filen
> men den cd'er ikke dertil?

Nej, det vil nok være svært at få til at virke. Kommandoer der skifter
katalog skal være indbygget i din shell-process og når du begynder
med pipes og lignende kommer du hurtigt til at starte en subprocess.

Prøv at læse manualsiden builtins(7) og se om ikke pushd og popd kan
opfylde dine ønsker.

//Makholm

HG (17-07-2007)
Kommentar
Fra : HG


Dato : 17-07-07 10:48

> Nej, det vil nok være svært at få til at virke. Kommandoer der skifter
> katalog skal være indbygget i din shell-process og når du begynder
> med pipes og lignende kommer du hurtigt til at starte en subprocess.
>
> Prøv at læse manualsiden builtins(7) og se om ikke pushd og popd kan
> opfylde dine ønsker.

De er helt fine, mange tak



Peter Makholm (17-07-2007)
Kommentar
Fra : Peter Makholm


Dato : 17-07-07 11:14

Peter Makholm <peter@makholm.net> writes:

> Nej, det vil nok være svært at få til at virke. Kommandoer der skifter
> katalog skal være indbygget i din shell-process og når du begynder
> med pipes og lignende kommer du hurtigt til at starte en subprocess.

Måske ikke helt så svært som jeg oprindelig antog. Problemet er at en
kommandosekvens hvor shellen skal skrive til en fil, vil shellen som
det første åbne filen og dermed eventuelt trunkere den.

Hvis vi finder en måde at fjerne sidste linje i en fil, der ikke
baserer sig på shell redirects, så er det let nok:

alias pop='cd $(tail -n 1 /tmp/push; perl -ni -e "print pop@a;push@a,\$_" /tmp/push)'
alias push='pwd >> /tmp/push'


Men jeg vil nu stadigvæk nok anbefale pushd og popd, der er indbygget
i bash.

//Makholm

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste