1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Script não funciona

Discussão em 'Dúvidas e Suporte Técnico - GNU/Linux & *nix' iniciada por lfbb, 2 de Dezembro de 2012. (Respostas: 1; Visualizações: 717)

  1. lfbb

    lfbb Power Member

    Código:
    #!/bin/sh
    
    
    if [ -z $1 ] || [ -z $2 ]; then
        echo "Usage: "$(basename $0)" cfe.old cfe.new"
        exit 1
    fi
    
    
    echo [1/4] Dumping default NVRAM settings from your CFE...
    ./nvsimple $1 > nvram.txt
    
    
    echo [2/4] Modifying NVRAM settings \(silent step\)...
    sed -i 's/vlan1ports=1/vlan1ports=1\ 2\ 3\ 4\ 8*/g' nvram.txt
    sed -i 's/bl_version=1.0.1.2/bl_version=1.0.1.3/g' nvram.txt
    echo "odmpid=ASUS" >> nvram.txt
    
    
    echo [3/4] Creating new CFE...
    start=1024
    count=4092
    dd if=/dev/zero of=$2 bs=1 seek=$start count=$count
    ./nvserial -i cfe_n66u-1.0.1.3.empty.bin -o $2 -b $start -c $count nvram.txt
    
    
    echo [4/4] Checking differences between NVRAM from old and new CFE\'s
    ./nvsimple $1 2>/dev/null | sort > nvram.old
    ./nvsimple $2 2>/dev/null | sort > nvram.new
    diff nvram.old nvram.new
    echo If you see only two differences: one is for \'bl_version\' and second is a new \'odmpid=ASUS\' variable then all step are done! New CFE image \'$2\' is prepared for flash.
    
    
    rm nvram.txt nvram.old nvram.new
    
    Boas malta!

    Tenho este script que não me está a funcionar na parte 'echo "odmpid=ASUS" >> nvram.txt', a string não me entra no ficheiro nvram.txt. Será que tem a ver com as duas linhas 'sed -i' que lhe precedem? Agradecia qualquer ajuda!

    Já agora, o script serve para fazer um update ao bootloader de um router.

    Cumprimentos
     
  2. nfk

    nfk Power Member

    Se desconfias do sed, já experimentaste comentar essas duas linhas, tirar o -i, ou fazer o echo para um ficheiro diferente?

    Experimenta escrever "set -x" logo no início do script. Isso dá-te informação sobre os comandos que estão a correr.
     

Partilhar esta Página