Se o script for executado por bash
em ambas as máquinas, não haverá problema (pelo menos não se as versões instaladas do shell suportarem read -i
e qualquer outro recurso bash
-específico que o script possa uso).
Certifique-se de que o script tenha uma #!
-line adequada apontando para o executável bash
em cada sistema.
Notas sobre o código:
Tmp="an_num.tmp"
Tmpg=$(cat $Tmp) # may be replaced with Tmpg=$(<"$Tmp")
Tmpi=$(expr $Tmpg + 1) # may be replaced with Tmpi=$(( Tmpg + 1 ))
printf "${WONWARN} Please enter a number ${NORMAL} %s"
# The above lacks a value for the %s format string
read -i "$Tmpi" -e Number; echo
echo "$Number" > "$Tmp"
Implementação alternativa (ainda bash
-specific, mas funciona com versões mais antigas, pois evita read -i
e valida que o valor lido do usuário é na verdade um número / número decimal):
tmp_fname="an_num.tmp"
read num <"$tmp_fname"
num=$(( num + 1 ))
read -p 'Enter number: '
if [[ -n "$REPLY" ]] && [[ "$REPLY" =~ ^[0-9]*$ ]]; then
num=$REPLY
fi
echo "$num" >"$tmp_fname"