Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

320
Visualizações
"establecer: opción ilegal -" en un host pero no en el otro

Escribí un script sh en una de mis máquinas virtuales de ubuntu que funciona bien, pero cuando intento ejecutarlo en mis otras máquinas virtuales, no funciona. Ambas máquinas virtuales deben ser iguales. Con bash --version ambas máquinas virtuales responden con:

 GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

Con lsb_release -a , ambos también responden:

 No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.3 LTS Release: 14.04 Codename: trusty

Mi script security_steps.sh se ve así:

 #!/bin/sh set -e if ! [ -f svn_up_action.sh ]; then echo "svn_up_action.sh is missing. Please make sure it is in the same directory as this script." exit fi

Cuando hago: sudo sh security_steps.sh , la consola falla con:

 : not foundeps.sh: 6: security_steps.sh: security_steps.sh: 7: set: Illegal option -

¿Cómo puedo averiguar qué está pasando con la máquina virtual del shell que no funciona? Siento que las conchas son de alguna manera diferentes. ¡Aprecio tu ayuda!

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Es casi seguro que esto significa que su archivo tiene líneas nuevas de DOS, por lo tanto, caracteres CR ocultos al final.

Por lo tanto, set -e se convierte en set -e$'\r' (utilizando la sintaxis específica de bash para representar el carácter CR), que no es una opción válida.

Esto también explica el : not found , ya que un CR restablecerá el cursor al principio de la línea, truncando un mensaje de error de la forma sh: commandname: not found haciendo que el nombre del commandname sea una operación que mueve el cursor al principio de la línea.

over 4 years ago · Santiago Trujillo Relatório

0

Tuve un archivo *.sh arrojándome esto mientras lo ejecutaba en Windows (a través de GitBash).

Tuve que cambiar los finales de línea al formato UNIX/OSX.

over 4 years ago · Santiago Trujillo Relatório

0

En ventanas :

 choco install dos2unix dos2unix file.sh

En Linux :

 sudo apt install dos2unix dos2unix file.sh

dos2unix convierte el archivo al tipo Unix.

Después de hacer esto, intente ejecutar la aplicación nuevamente o el archivo.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda