sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #100076
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