On 2019/04/29 00:21, Marco Bonetti wrote: > > > +++ usr.sbin/sysupgrade/sysupgrade.sh 27 Apr 2019 11:54:48 -0000 > > > @@ -110,7 +110,19 @@ fi > > > > > > cd ${SETSDIR} > > > > > > -unpriv -f SHA256.sig ftp -Vmo SHA256.sig ${URL}SHA256.sig > > > +unpriv -f SHA256.sig.tmp ftp -Vmo SHA256.sig.tmp ${URL}SHA256.sig > > > +TMP_SHA=$(sha256 -q SHA256.sig.tmp) > > > + > > > +unpriv touch SHA256.sig > > > +CUR_SHA=$(sha256 -q SHA256.sig) > > > + > > > +if [[ "${TMP_SHA}" = "${CUR_SHA}" ]]; then > > > > Why compare checksums? > > > > if cmp -s SHA256.sig SHA256.sig.tmp; then > > cmp exits 1 on different files, thus killing the script
That's not the case: -e Errexit. Exit the shell immediately should an error occur or a command fail. For pipelines and && and || constructs, only exit if the last component fails. Errexit is ignored for while, until, if, and elif lists and pipelines beginning ‘!’.