Código adequado
#!/bin/sh
if [ ! -f .md5sum ] || [ -f .md5sum ] && ! md5sum -c .md5sum > /dev/null
then
echo "All conditions have been met to generate a new md5sum for inventory.csv ..."
md5sum inventory.csv > .mds5sum
fi
Análise
[ ! -f .md5sum ]
[ -f .md5sum ]
Estes são comandos comuns de test
, então POSIX-ly [...]
, não há necessidade de colchetes duplos.
! md5sum -c .md5sum > /dev/null
Este não é um comando test
, então não há colchetes ao redor dele.
Notas
-
Não é necessário usar
bash
,sh
neste script. Eu só posso recomendar ficar com shell POSIX (sh
), desde que você pode para fins de portabilidade. -
md5sum
foi substituído, por ex. comsha512sum
. Nenhum algoritmo hash é perfeito, masmd5sum
é conhecido por não ser resistente a colisões, especialmente. Só posso recomendar o uso desha512sum
, desde que você não precise de hash extra curto. -
Leia mais sobre o comando de teste .
-
Opcionalmente, leia mais sobre POSIX .