guarda questo mio script scritto apposta:
<BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
<BR>#!/bin/sh
<BR>
<BR>pwd
<BR>cd /usr
<BR>pwd
<BR>ls
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
<BR>
<BR>il suo output è:
<BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
<BR>sukko@unholycathedral sukko $ chmod a+x test
<BR>sukko@unholycathedral sukko $ ./test
<BR>/home/sukko
<BR>/usr
<BR>adm doc i486-slackware-linux java local share tmp
<BR>bin etc include lib man spool X11
<BR>dict games info libexec sbin src X11R6
<BR>sukko@unholycathedral sukko $
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
<BR>
<BR>ergo tutto funziona come dovrebbe. se quel che non ti spieghi è perché la directory mostrata dal prompt è sempre la stessa, è perché lo script viene eseguito un un´altra shell (come indica la prima riga!), caricata apposta e terminata subito dopo. se vuoi che il programma venga eseguito dalla shell corrente, usa <!-- BBCode Start --><I>source</I><!-- BBCode End -->:
<BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
<BR>sukko@unholycathedral sukko $ source ./test
<BR>/home/sukko
<BR>/usr
<BR>adm@ doc/ i486-slackware-linux/ java/ local/ share/ tmp@
<BR>bin/ etc/ include/ lib/ man/ spool@ X11@
<BR>dict/ games/ info/ libexec/ sbin/ src/ X11R6/
<BR>sukko@unholycathedral usr $
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
<BR>
<BR>come vedi, stavolta è cambiata anche la dir corrente!
<BR>
<BR>quanto a come "catturare" l´output di ls:
<BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
<BR>for f in `ls *`
<BR>do
<BR> echo $f
<BR>done
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
<BR>
<BR>stamperà il nome di ogni file presente nella directory corrente. da questo dovresti facilmente ricavare quel che serve a te. se non ci riesci... posta
.<br>