Я пытаюсь изучить сценарий оболочки и написать простой скрипт для увеличения значений Hex в цикле.Shell Script: Hexadecimal Loop
Вот мой сценарий:
increment=0x0001
handle=0x0001
for((i=1;i<=20;i++))
do
echo $handle
handle=$(($handle + $increment))
handle=$(printf '%x' $handle)
done
Вот мой результат:
0x0001
2
3
4
5
6
7
8
9
a
1
2
3
4
5
6
7
8
9
a
Он работает отлично до 10 итераций, но после того, что он, начиная с 1 снова.
Может ли кто-нибудь сообщить мне о моей ошибке?
EDIT: После удаления handle=$(printf '%x' $handle)
вывода строки:
0x0001
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
На самом деле я хочу выход только в HEX.
преобразовать в шестнадцатеричном –
Я не совсем понимаю вашу проблему, но вы можете использовать это тело цикла, чтобы решить эту проблему: 'Printf ' % x \ n '$ handle; handle = $ (($ handle + $ increment)) ' – Aaron