Como converter decimal para hexadecimal no Ubuntu?

0

Estou usando um arquivo bash no Ubuntu e escrevi um código executável nesse arquivo que deve usar algum número hexadecimal.

Mas eu só tenho números decimais, então quero converter números decimais em números hexadecimais automaticamente por algum comando.

Esta é uma parte do meu código:

x=1
while [ $x -lt 255 ];do
$tc filter add dev eth0 protocol ip parent 10:0 prio 5 u32 ht 2:$x: \
match ip dst 192.168.67.$x flowid 10:$x
x=$(( $x + 1 ))
done

nesta seção "u32 ht 2: $ x:" no meu código "$ x" deve estar em forma hexadecimal e em outra seção deve estar em forma decimal.mas meu problema é em forma hexadecimal. Como posso convertê-lo no meu código e usá-lo?

    
por samie 04.04.2015 / 12:48

2 respostas

1

O comando para converter um número decimal em hexadecimal é:

echo "obase=16; decimal-number"|bc  

onde número decimal substitui um número decimal. GNU bc é uma linguagem de calculadora interativa. obase define a base de conversão para o número de saída.

Comando alternativo que solicita ao usuário digitar um número:

printf "Type a number: " && read dec && printf -v hex "%x" $dec && echo $hex  
    
por 04.04.2015 / 14:26
1

Você pode usar a biblioteca de Velud do awk:

$ velour -n 'print n_baseconv(15, 10, 16)'
F

Ou:

$ velour -n 'print n_baseconv(ARGV[1], 10, 16)' 15
F
    
por 27.03.2017 / 06:30