Uma pequena melhoria óbvia para
CHECKSUM="$(shasum "$file" | cut -b 1-40)"
echo -n "$CHECKSUM" > "$file.sha"
é:
shasum "$file" | cut -b 1-40 >"$file.sha"
A nova linha à direita por cut
pode ser evitada com 'awk:
shasum "$file" | awk -v ORS="" '{print $1}'
Uma forma mais simples de
CHECKSUM="$(shasum "$file" | cut -b 1-40)"
echo -n "$CHECKSUM" | diff - "$file.sha"
é:
if [ "$(shasum "$file" | cut -b 1-40)" = "$(<"$file.sha")" ]; then ...