[PLUTO-help] Terminare uno script bash senza chiudere il terminale

Melinda Siciliano mellybinda a gmail.com
Ven 5 Nov 2010 16:08:10 CET


Ops!!!!  Ho fatto casini con il copia e incolla.....

Ti mando la parte problematica. Il resto esegue una serie di programmi che
non sto a mettere.

Ciao,

Melinda


#!/bin/bash
RUN='123456'
PERIOD='april'
PASS='week12'
YEAR='2010'
TMPPLACE='/tmp'
TMPFOLDER='1'
EXECFOLDER='$HOME/foldermacro'
MAXFILES='300'
echo "Run Number   :[${RUN}]"
read
if [ "$REPLY" != "" ]; then
export RUN=$REPLY
echo "Run   $RUN"
fi
echo "Period        :[${PERIOD}]"
read
if [ "$REPLY" != "" ]; then
export PERIOD=$REPLY
echo "Period  $PERIOD"
fi
echo "Pass           : [${PASS}]"
read
if [ "$REPLY" != "" ]; then
export PASS=$REPLY
echo "Pass       $PASS "
fi
echo "Year      :[${YEAR}]"
read
if [ "$REPLY" != "" ]; then
export YEAR=$REPLY
echo "Year    $YEAR"
fi
echo "folder with macros     :[${EXECFOLDER}]"
read
if [ "$REPLY" != "" ]; then
export EXECFOLDER=$REPLY
echo "Folder:    $EXECFOLDER"
fi
echo "local or lxplus (1=local 2=server)   :[${TMPFOLDER}]"
read
if [ "$REPLY" != "" ]; then
export TMPFOLDER=$REPLY
fi
if [ "$TMPFOLDER" == "1" ]; then
export TMPPLACE='/tmp'
else
export TMPPLACE='/tmp/$USERNAME'
fi
GOOD=130
echo "Max number of files (Insert a number >0)   :[${MAXFILES}]"
read
case $REPLY in
       *[a-zA-Z]*|*[!0-9]*|*[-]*)
                                   echo "Wrong: it is not a number >
0"
                               ;;
                         *[0-9]*)
                                  export MAXFILES=$REPLY
                                  echo "Max number of files:    $MAXFILES"
                                  export GOOD=0
                       ;;
esac
if [ "GOOD" != "0" ]; then
exit $GOOD
fi
if [ "$REPLY" != "" ]; then
export MAXFILES=$REPLY
echo "Max number of files:    $MAXFILES"
fi
if [ ls -l "run$RUN" >/dev/null 2>&1 ]; then
echo "directory run$RUN exists "
else
mkdir "run$RUN"
fi
cd "run$RUN"
if [ ls -l $PASS > /dev/null 2>&1 ]; then
echo "directory $PASS exixsts"
else
mkdir $PASS
cd $PASS
fi

echo " Run   $RUN  "
echo " Period $PERIOD"
echo " Pass $PASS"



2010/11/5 Melinda Siciliano <mellybinda a gmail.com>

>
>
> 2010/11/5 <saint a eng.it>
>
>> >>>>> "MS" == Melinda Siciliano <mellybinda a gmail.com> writes:
>>
>> >> Ho provato a fare un copia e incolla del tuo codie e, ahime' per
>> >> me, anche
>> >> questo mi chiude la finestra :(.
>>
>> MS> Cosa puo' essere?
>>
>> La mia  esci dovrebbe essere chiamata  al posto della exit,  forse non
>> era chiaro.
>>
>> CHI apre la finestra che viene chiusa al termine del programma ?
>>
>>
> La finestra e' aperta dall'utente che poi eseguira' lo script, inserendo le
> informazioni necessarie per il suo funzionamento.
>
>
>>
>>
>> Un  terminale  si  chiude  nel  momento  in  cui  termina  il  rpcesso
>> associato, sia esso una shell od un altro programma.
>>
>> Se lanci  uno script questo usualmente   un figlio (fork()  + exec())
>> del proccesso  shell da cui lo  lanci, e quando termina  termina lui e
>> non il padre.
>>
>
>> Se per lanci lo script come .  script non viene fatta la fork() ed un
>> termine per  exit esplicito  dello script  termina la  shell da  cui 
>> stato lanciato lo script.
>>
>
> In questo caso il source agisce come il . script? Se si, impostando un
> alias in uno script di environment non risolverebbe il problema? Allora il
> problema e' un altro per me: come devo faer affinche' lo script diventi
> figlio della shell?
>
>
>>
>> Se poi  invece hai  fatto una  cosa del tipo  xterm -e  script, allora
>> morendo il processo associato al terminale si chiude il terminale.
>>
>> Nulla di tutto cio'. L'utente apre il terminale dall'icona su desktop e
> poi lancia uno script che gli chiede di inserire determinate informazioni e
> poi avvia una serie di programmi e funzioni.  Se le informazioni non sono
> corrette, ad esempio numero negativo quando mi aspetto un numero positivo,
> vorrei l'uscita dallo script. Solo che non veglio mettere if o case
> annidati. Volevo un equivalente del return delle funzioni in c++per
> terminare il programma.
>
>
>>   tanto grosso questo script ?
>>
>
>  #!/bin/bash
> RUN='123456'
> PERIOD='april'
> PASS='week12'
> YEAR='2010'
> TMPPLACE='/tmp'
> TMPFOLDER='1'
> EXECFOLDER='$HOME/storedmacro'
> MAXFILES='300'
> echo "Run Number   :[${RUN}]"
> read
> if [ "$REPLY" != "" ]; then
> export RUN=$REPLY
> echo "Run   $RUN"
> fi
> echo "Period        :[${PERIOD}]"
> read
> if [ "$REPLY" != "" ]; then
> export PERIOD=$REPLY
> echo "Period  $PERIOD"
> fi
> echo "Pass           : [${PASS}]"
> read
> if [ "$REPLY" != "" ]; then
> export PASS=$REPLY
> echo "Pass       $PASS "
> fi
> echo "Year      :[${YEAR}]"
> read
> if [ "$REPLY" != "" ]; then
> export YEAR=$REPLY
> echo "Year    $YEAR"
> fi
> echo "folder with macros     :[${EXECFOLDER}]"
> read
> if [ "$REPLY" != "" ]; then
> export EXECFOLDER=$REPLY
> echo "Folder:    $EXECFOLDER"
> fi
> echo "local or server (1=local 2=server)   :[${TMPFOLDER}]"
> read
> if [ "$REPLY" != "" ]; then
> export TMPFOLDER=$REPLY
> fi
> if [ "$TMPFOLDER" == "1" ]; then
> export TMPPLACE='/tmp'
> else
> export TMPPLACE='/tmp/$USERNAME'
> fi
> GOOD=130
> echo "Max number of files (Insert a number >0)   :[${MAXFILES}]"
> read
> case $REPLY in
>        *[a-zA-Z]*|*[!0-9]*|*[-]*)
>                                    echo "Wrong: it is not a number > 0"
> exit
>                                ;;
>                          *[0-9]*)
> #                                  export MAXFILES=$REPLY
> #                                  echo "Max number of files:    $MAXFILES"
>
> #                                  export GOOD=0
> #                       ;;
> #esac
> #if [ "GOOD" != "0" ]; then
> #exit $GOOD
> #fi
> #if [ "$REPLY" != "" ]; then
> #export MAXFILES=$REPLY
> #echo "Max number of files:    $MAXFILES"
> #fi
> if [ ls -l "run$RUN" >/dev/null 2>&1 ]; then
> echo "directory run$RUN exists "
> else
> mkdir "run$RUN"
> fi
> cd "run$RUN"
> if [ ls -l $PASS > /dev/null 2>&1 ]; then
> echo "directory $PASS exixsts"
> else
> mkdir $PASS
> cd $PASS
> fi
>
>
>
>
>
>>
>> --
>>                                                Gian
>>                                       Friends will be friends
>>                                          right to the end!
>>
>
>



More information about the pluto-help mailing list