Tenho certeza de que há uma maneira mais elegante, mas é cedo ...
if (( $# > 0 )); then
# the "-i" option takes care of writing to a tmp file and
# overwriting the original file
perl -0 -i -pe 's/\n\Z//' "$1"
else
# read from stdin and write to stdout
perl -0 -pe 's/\n\Z//'
fi
você precisará remover a [[ $1 == "" ]]
check e colocar a [[ ! -f $1 ]]
check dentro do bloco "true" da minha declaração if.