#!/bin/sh # usage: ifchange target temporary target="$1" temp="$2" if [ "$temp" = - ]; then temp="tmpdata$$.tmp~" cat > "$temp" || exit $? trap 'rm -f "$temp"' 0 fi if cmp "$target" "$temp" >/dev/null 2>&1; then echo "$target unchanged" rm -f "$temp" else echo "$target updated" mv -f "$temp" "$target" fi