Eliminación de ceros no significativos de una variable

Resuelto
tbeghain Mensajes publicados 63 Estado Miembro -  
lEprofSonDkon Mensajes publicados 227 Estado Miembro -
Hola,

Estoy respondiendo a una solicitud similar hecha hace mucho tiempo. Tengo el mismo problema (quiero eliminar los ceros no significativos delante de una variable alfanumérica que solo contiene dígitos).
Tomé exactamente el ejemplo que se dio en su momento
Si aplico la solución recomendada, directamente desde la línea de comandos, funciona

>var=0000001253; echo ${var##*(0)}
1253


Sin embargo, tan pronto como lo pongo en un script de shell, no obtengo el resultado esperado en absoluto:
>cat test.sh


#!/bin/bash var=0000001253; echo ${var##*(0)}


>test.sh
0000001253


Bueno, estoy en Linux CentOS7. Debe ser algo sencillo. Quizás falta algo...

Gracias por tus respuestas

Configuración: CentOS Linux release 7.5.1804 (Core)

5 respuestas

  1. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 659
     
    $ cat test.sh
    #!/bin/bash
    shopt -s extglob
    var=0000001253; echo ${var##*(0)}
    $ test.sh
    1253
    $
    2
  2. mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940
     
    Hola,

    Efectivamente no funciona. Puedes eliminar los ceros a la izquierda con
    sed
    :

    #!/bin/bash var=0000001253 var=$(echo $var | sed -e "s/^0*//") echo $var


    Buena suerte
    1
    1. tbeghain Mensajes publicados 63 Estado Miembro 3
       
      Hola,

      Sí, eso funciona. Muchas gracias. Pero me gustaría entender por qué el comando directo no funciona en el script...
      0
  3. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 659
     
    hola
    no ejecutar el script por:
    sh test.sh
    0
    1. tbeghain Mensajes publicados 63 Estado Miembro 3
       
      Hola,

      ¡Eh! ¿Pero cómo se ejecuta el script entonces? De todos modos, no lo ejecutaba con sh test.sh, sino simplemente test.sh...
      0
  4. tbeghain Mensajes publicados 63 Estado Miembro 3
     
    Hola,

    ¡Sí! También funciona con shopt. Muchas gracias. No sé qué es eso de shopt. Voy a informarme.
    0
    1. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 659
       
      en la página del manual de bash, ver
      Desarrollo de nombres de archivos
      ....
      Si la opción extglob del shell está activada por el comando shopt, se reconocen varios operadores de coincidencia extendida. ...
      0
  5. lEprofSonDkon Mensajes publicados 227 Estado Miembro 13
     
    Hola,

    en bash :
    echo $((10#$var))
    0