我在處理其他表達式中的表達式時遇到問題。例如,這裏是我的代碼:Shell編程:帶命令替換的嵌套表達式
#!/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
所有我想要的是回聲打印數量,而不加「0x」。比方說,如果輸入是0x15,輸出應該只是15.但似乎找到字符串的長度失敗。
現在,如果我創建了一個名爲長這樣的另一個變量:
#!/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
它的工作原理。
那麼如何在不創建其他變量的情況下獲得相同的結果呢?