Há um erro nesta linha: echo "$(( number > gb ) gigabytes"
está faltando).
A linha deve ler: echo "$(( number > gb )) gigabytes"
Estou com problemas com um script que converte números em bytes.
line n ((: x > 1048576 : syntax error: invalid arithmetic operator (error token is " "). x represents the number I input.
tb=1099511627776
gb=1073741824
mb=1048576
kb=1024
read number
if (( $number > $tb )); then
echo "$(( number / tb )) terabytes"
elif (( $number > $gb )) && (( $number < $tb )); then
echo "$(( number > gb )) gigabytes"
elif (( $number > $mb )) && (( $number < $gb )); then
echo "$(( number > mb )) megabytes"
elif (( $number > $kb )) && (( $number < $mb )); then
echo "$(( number > mb )) kilobytes"
fi
A linha n
é o meio elif
.
Há um erro nesta linha: echo "$(( number > gb ) gigabytes"
está faltando).
A linha deve ler: echo "$(( number > gb )) gigabytes"
Eu encontrei o problema com o verificador de verificação de shell, obrigado @Cyrus. Aparentemente, eu tinha um espaço não-invasivo (& nbsp) que eu precisava excluir e transformar em um espaço normal no meio elif entre ((e $ number. Como isso acontece?
Tags bash shell-script arithmetic