他の式の中で式を処理するのに問題があります。たとえば、私のコードは次のとおりです。
#!/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
できます。
では、別の変数を作成せずに同じ結果を得るにはどうすればよいでしょうか。