Problema con script NDAS

Simón jmsimonr en gmail.com
Lun Mayo 21 12:36:39 BST 2007


Hola,
    Estoy instalando ndas-admin que sirve para poder acceder a unidades 
a través de red que usan el chip Ximeta. Pero este no es el tema, el 
caso es que el script de inicio que instala en /etc/init.d da un error 
en la función siguiente (en la línea del if):

        _variants_="smp hugemem kdump xen0 xenU PAE"

        ... (aquí vienen más código)....

        get_kernel_variant() {
            _version_=`uname -r`;
            for s in $_variants_;
            do
                if [ "${_version_/$s}" != "${_version_}" ] ; then
                    echo $s;
                    return 0;
                fi
            done
            echo "";
            return 0;
        }


    He hecho una prueba en el terminal de comandos, definiendo una 
variable s y otra _version_, ejecuto luego:
 

        echo "${_version_/$s}"


    y me devuelve sólo la variable $_version_ pero tampoco da error. Si 
esto mismo lo ejecuto dentro de un script devuelve error en esa línea.

    Sabéis por qué da error en script y no en el terminal? Qué significa 
esto de "${_version_/$s}"? Qué valor debería devolver (si es que es 
correcta la expresión)?
    Seguiré investigando a ver si consigo averiguar algo.

    Esta función trata de determinar la variante del kernel que está 
instalada (aunque esto de las variantes del kernel, desde el 6.10 si no 
me equivoco, ya no se usan).
    "uname -r" devuelve la versión del kernel, supongo que incluyendo la 
variante (si hay alguna), no? Si esta suposición es correcta, ese if 
pretende que si quitando la variante de la versión devuelta (sólo se 
quitaría si es coincidente) es diferente de la versión completa devuelta 
por uname, esa es la variante instalada. No sé si me he explicado bien, 
pero tal como lo veo yo, parece la suposición correcta. Consultando 
diferentes fuentes esto se tendría que hacer de la siguiente manera:

        if [ "${_version_%$s}" != "${_version_}" ] ; then

   
    Ya que se trata de eliminar los valores de las posibles variantes 
del contenido de la versión del kernel, no?

    Gracias. Un saludo,

-- 
   Simón 
   Usuario Linux nº 413.257 (http://counter.li.org/)
   Usuario Ubuntu nº 11312 (http://ubuntucounter.geekosophical.net/)




Más información sobre la lista de distribución ubuntu-es