Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

219
Vistas
El uso de la tubería en la declaración if no funciona

Soy nuevo en las secuencias de comandos de Shell y me quedé con esto: probé esta cláusula if:

 if [ unrar l "$filename" | grep -P "\.(?:r\d\d|r\d\d\d|.rar)$ ]; then...

No funciona, así que probé esta salida de depuración: no obtengo salida para $grep_output :

 $grep_output = unrar l "$filename" | grep -P "\.(?:r\d\d|r\d\d\d|.rar)$"

Si ejecuto esto directamente en el shell, funciona sin problemas:

 unrar l "$filename" | grep -P "\.(?:r\d\d|r\d\d\d|.rar)$

¿Dónde está mi error? ¡Gracias de antemano!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Retire los corchetes; estos no son parte de la sintaxis de la declaración if , sino una forma alternativa de invocar el comando de test , generalmente para usar un operador binario:

 if unrar l "$filename" | grep -P "\.(?:r\d\d|r\d\d\d|.rar)$"; then... fi
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda