我在处理其他表达式中的表达式时遇到了麻烦。例如,这是我的代码:
#!/bin/sh
number=0
read number
if [ `expr substr $number 1 2` = "0x" ];
then
echo "Yes that's hex: $number"
number=`expr substr $number 3 `expr length $number``
echo $number
else
echo "No that's not hex"
fi
我想要的只是让 echo 打印没有'0x'的数字。假设输入为 0x15,则输出应仅为 15。但似乎查找字符串的长度失败了。
现在,如果我像这样创建另一个名为 length 的变量:
#!/bin/sh
number=0
read number
if [ `expr substr $number 1 2` = "0x" ];
then
echo "Yes that's hex: $number"
length=`expr length $number`
number=`expr substr $number 3 $length`
echo $number
else
echo "No that's not hex"
fi
有用。
那么如何在不创建另一个变量的情况下获得相同的结果呢?