Olá galera,
eu estou tentando escrever um script para mudar meu endereço mac pra um aleatório, mas o problema não está relacionado à mudança de mac e sim (ou talvez) a um erro de sintax.
Esse é o conteúdo do arquivo chmac.sh:
#!/bin/bash
echo $SHELL
MAC=00
MAX=$(echo "16 ^ 2 - 1" | bc)
echo "MAX vale "$MAX
for x in 1 2 3 4 5; do
rand=$RANDOM
NUM=$((${rand} % ${MAX}))
echo "NUM em decimal "$NUM
NUM=`echo "obase=16; $NUM" | bc`
echo "NUM convertida para hexa "$NUM
NUM=`printf "%02x" 0x$NUM`
MAC=$MAC:$NUM
done
echo "O novo MAC será "$MAC
service network-manager stop
ifconfig $1 down
ifconfig $1 hw ether $MAC
ifconfig $1 up
service network-manager start
Quando executo da primeira maneira (como um script deve ser executado) tenho a seguinte saída de erro:
$ sudo ./chmac.sh wlan0
/bin/bash
MAX vale 255
./chmac.sh: 14: ./chmac.sh: arithmetic expression: expecting primary: " % 255"
Por acaso descobri que se rodar com "bash" antes funciona:
$ sudo /bin/bash ./chmac.sh wlan0
/bin/bash
MAX vale 255
NUM em decimal 238
NUM convertida para hexa EE
NUM em decimal 55
NUM convertida para hexa 37
NUM em decimal 31
NUM convertida para hexa 1F
NUM em decimal 176
NUM convertida para hexa B0
NUM em decimal 162
NUM convertida para hexa A2
O novo MAC será 00:ee:37:1f:b0:a2
network-manager stop/waiting
network-manager start/running, process 7946
Alguém sabe porque não funciona da primeira maneira?
Abraços e muito obrigado desde já.