读书人

一段Shell脚本的语法有关问题

发布时间: 2013-01-08 14:02:14 作者: rapoo

一段Shell脚本的语法问题


#!/bin/bash
#Reverse Order

echo "Reverse Order and print."

if [ $# -ne 1 ]
then
echo "Usage $0 number"
echo " I will find reverse order of given number."
echo " For e.g. $0 123, I will print 321."
exit 1
fi

n=$1
rev=0
sd=0

while [ $n -gt 0 ]
do
sd=`expr $n % 10`
rev=`expr $rev /* 10 + $sd`
n=`expr $n / 10`

echo "$sd $rev $n"
done

echo "Reversed number is $rev"


结果打印如下:

Reverse Order and print.
expr: syntax error
3 872
expr: syntax error
2 87
expr: syntax error
7 8
expr: syntax error
8 0
Reversed number is


为什么执行后会是有语法错误???
[解决办法]
`expr $rev /* 10 + $sd` ?
[解决办法]
rev=`expr $rev /* 10 + $sd` 改为

rev=`expr $rev \* 10 + $sd`

是运算符出错导致的。

读书人网 >UNIXLINUX

热点推荐