I want to pass a numeric value to a bash script, which could be either an absolute integer value (0-100) or a relative "delta" like "+10" or "-50".
How would I parse $1
to check for +
or -
and grab the remaining text as a value?
argumentsshell-script
I want to pass a numeric value to a bash script, which could be either an absolute integer value (0-100) or a relative "delta" like "+10" or "-50".
How would I parse $1
to check for +
or -
and grab the remaining text as a value?
Best Answer
Base on @frams's idea, we can make the answer shorter:
${1//[[:digit:]]}
deletes digit part of${1}
${1//[^[:digit:]]}
deletes non-digit part of${1}
ref: Advanced Bash Scripting Guide by Mendel Cooper