[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