1

シェルスクリプトには、いくつかのシリーズがあります

11 10 9 8 7 6 5 4 3 2 1 0
(8 4 2 1,8 4 2 1,8 4 2 1) on this bases 
the maximum value is "f"

だから私が価値を与えるなら

variable=3,2,1

返されるはずです(0,0,8 + 4 + 2 = 14は e を意味します)

e
0e
00e

私が値を与える場合(0、8 + 4 + 2 = 14はe、0を意味します)

varible=8,7,6

それは戻るべきです

e0
0e0

私が価値を与えるなら

varible=11,10,9

返されるはずです(8 + 4 + 2 = 14はe、0、0を意味します)

e00
4

2 に答える 2

0

You can use parameter expansion to replace commas with pluses. Then, use arithmetic expansion to do the calculation. Finally, use printf to do the conversion and format the output:

printf '%03x\n' $(( ${variable//,/+} ))
于 2013-09-13T07:16:03.563 に答える
0

awk の使用:

awk -v RS=, '{s+=$1} END{printf "%02x\n", s}' <<< "$variable"
0e

編集: bashを使用していない場合:

echo "$variable" | awk -v RS=, '{s+=$1} END{printf "%02x\n", s}'
0e
于 2013-09-13T07:19:26.870 に答える