Com base na ideia da @ frams, podemos tornar a resposta mais curta:
sign=${1//[[:digit:]]}
value=${1//[^[:digit:]]}
${1//[[:digit:]]} exclui parte do dígito de ${1}
${1//[^[:digit:]]} exclui parte não dígito de ${1}
ref: Guia avançado de scripts bash por Mendel Cooper