Os números também são texto. O texto pode ser revertido com rev sem qualquer aritmética.
#!/bin/bash
clear
read -p "Enter a number: " num
echo $num | rev
clear
echo "Enter a number"
read n
sd=0
rev=0
while [ $n -gt 0 ]
do
sd=$(( $n % 10 ))
rev=$(( $rev *\ 10 + $sd ))
n=$(( $n / 10 ))
done
echo "Reverse number of entered digit is $rev"
Do código acima, não consigo obter a saída necessária. Em vez disso, esse erro é exibido.
./Display: line 17: 0 *\ 10 + 4 : syntax error: operand expected (error token is "\ 10 + 4 ")
Reverse number of entered digit is 0
Eu não sei porque esse erro é exibido, por favor me ajude a descobrir isso.
Os números também são texto. O texto pode ser revertido com rev sem qualquer aritmética.
#!/bin/bash
clear
read -p "Enter a number: " num
echo $num | rev
O erro já havia apontado claramente o problema: 0 *\ 10 + 4
não é uma expressão aritmética válida.
Acredito que *\
seja um erro de digitação para *
. Corrija este erro de digitação e o script estará OK.
*\
não é a expressão válida. Em vez disso, tente *
, que remove o significado especial do caractere *
. O caractere *
é um caractere curinga, e é por isso que o erro apareceu.
echo "Enter a number"
read n
sd=0
rev=0
while [ $n -gt 0 ]
do
sd=$(( $n % 10 ))
rev='expr $rev \* 10 + $sd'
n=$(( $n / 10 ))
done
echo "Reverse number of entered digit is $rev"
*
é um caractere curinga. Por isso, certifique-se de adicionar um ' \
' antes de usá-lo
echo "Enter a number"
read n
sd=0
rev=0
while [ $n -gt 0 ]
do
sd=$(( $n % 10 ))
rev=$(( $rev * 10 + $sd ))
n=$(( $n / 10 ))
done
echo "Reverse number of entered digit is $rev"
Isso deve funcionar * \ não é o formulário correto apenas use * para isso
echo "enter the number"
read n
rev=0
sd=0
while [$n -gt 0]
do
sd='expr $n%10'
rev='expr $rev\*10+$sd'
n='expr $n/10'
done
echo "the reverse number s: $rev"
for i in $*; do
x=$i" "$x
done;
echo "The Reverse order is $x"
Tags shell-script