Распечатать заданное число в обратном порядке

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" 

Из приведенного выше кода я не могу получить требуемый результат. Вместо этого отображается эта ошибка.

 ./Display: line 17: 0 *\ 10 + 4 : syntax error: operand expected (error token is "\ 10 + 4 ") Reverse number of entered digit is 0 

Я не знаю, почему эта ошибка отображается, пожалуйста, помогите мне разобраться.

Числа – тоже текст. Текст может быть изменен с помощью rev без какой-либо арифметики.

 #!/bin/bash clear read -p "Enter a number: " num echo $num | rev 

Ошибка уже четко указывала на проблему: 0 *\ 10 + 4 не является допустимым арифметическим выражением.

Я считаю, что *\ является опечаткой для * . Исправьте эту опечатку, и сценарий будет в порядке.

*\ не является действительным выражением. Вместо этого попробуйте * который удаляет особое значение символа * . Символ * является подстановочным символом, поэтому возникла ошибка.

* является подстановочным символом. Поэтому убедитесь, что вы добавили ' \ ' перед его использованием

 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" 
 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" 

Это должно работать * \ это не правильная форма, просто используйте * для этого

 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"