[linux] bash skript a "cd"
Matej Pivoluska
pivoluska na matfyz.cz
Sobota Srpen 30 17:08:34 CEST 2003
Michal Fojtik wrote --- napísal::
>Zdravim,
>
> Vcera som dost dlho maturoval nad jednou trivialnou vecou. Chcel som
> si spravit skriptik ktory mi mountne disketu a presunie ma do
> adresara /mnt/floppy. Skript mal vyzeral nejak takto:
>
> #!/bin/sh
> ...
> mount /mnt/floppy
> cd /mnt/floppy
> ...
>
> Avsak to "cd" samozrejme nefunguje. Neviem s akeho dovodu. Ked
> urobim
>
> mi na home #. ./mountskript
>
> tak ma do toho adresara presunie bez problemov.
>
>
To nie je bug, ale feature shellu. cd je prikaz shellu, nie je to
program. Ked spustis skript ./skript, vykona sa v subshelli, a po jeho
vykonani sa zasa vrati do rodicovskeho shellu, v ktorom sa vsak veci ako
cd a nastavenie premennych zo subshellu neprejavia.
Bodka je zase prikaz shellu, ktora sluzi podobne ako #include v C alebo
:r vo ViM. Pomocou . (bodky) nacitas a v tom isto shelli vykonas
prikazy, ktore su uvedene v subore, ktoreho meno napises ako parameter.
mP
Další informace o konferenci linux