← Back to team overview

sslug-teknik team mailing list archive

Re: bash && og ||

 

On Mon, March 15, 2010 08:30, Martin Møller Skarbiniks Pedersen wrote:
> 2010/3/15 Mogens Melander <mogens@xxxxxxxxxxxxx>:
>> Hejsa
>>
>> Er der nogen der ved hvorfor flg. ikke virker:
>> (Zenwalk 6.2, GNU bash, version 3.1.17(2)-release)
>>
>> make $ntasks \
>> && ( echo -e "\n\t---[ make success ]---------------" ) \
>> || ( echo -e "\n\t---[ make failed ]----------------"; cd $buildir; exit 1 )
>>
>> Hvis make fejler, skrives "make failed" til consol, men cd og exit gør intet,
>> og scriptet fortsætter med en make install DESTDIR=$packagedir som selvfølgelig
>> også fejler.
>>
>
> Prøv at udskifte ( og ) med { }. Når du skriver ( xxx ), så kører xxx
> i en subshell.

Hmmm, det resulterer i syntax fejl, så det var vist ikke løsningen:

if [ ! -x /usr/bin/dnet-config ]
then
 if [ ! -f libdnet-1.11-i486-1.tgz ]
 then
  $buildir/build-libdnet.sh \
  && { echo -e "\n\t---[ build libdnet success ]------\n" } \
  || { echo -e "\n\t---[ build libdnet failed ]------\n"; exit 1 }

 fi <-------[syntax error near unexpected token `fi']-------------------------

 zpm --install --autodeps libdnet-1.11-i486-1.tgz
fi


Denne virker efter hensigten:

if [ ! -d $orgdst ]
then
$MKDIR $orgdst \
&& ( echo "Create directory OK $orgdst"; sudo chown mogens.daemon $orgdst ) \
|| ( echo "Create directory failed $orgdst"; rm -fr $src; exit 1 )
fi

-- 
Later

Mogens Melander



-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



Follow ups

References