sh: 0: opción ilegal -


10

Cuando intento ejecutar el siguiente comando en Ubuntu:

sudo -n -u contd sh --login -c ". /home/contd/iib-10.0.0.5/server/bin/mqsiprofile;/home/contd/iib-10.0.0.5/common/jdk/jre/bin/java -cp $CLASSPATH:$MQSI_JREPATH//usr/share/ant/lib/ant-antlr.jar:/usr/share/ant/lib/ant-apache-bcel.jar:/usr/share/ant/lib/ant-apache-bsf.jar:/usr/share/ant/lib/ant-apache-log4j.jar:/usr/share/ant/lib/ant-apache-oro.jar:/usr/share/ant/lib/ant-apache-regexp.jar:/usr/share/ant/lib/ant-apache-resolver.jar:/usr/share/ant/lib/ant-apache-xalan2.jar:/usr/share/ant/lib/ant-commons-logging.jar:/usr/share/ant/lib/ant-commons-net.jar:/usr/share/ant/lib/ant-javamail.jar:/usr/share/ant/lib/ant-jdepend.jar:/usr/share/ant/lib/ant-jmf.jar:/usr/share/ant/lib/ant-jsch.jar:/usr/share/ant/lib/ant-junit.jar:/usr/share/ant/lib/ant-junit4.jar:/usr/share/ant/lib/ant-launcher.jar:/usr/share/ant/lib/ant-swing.jar:/usr/share/ant/lib/ant-testutil.jar:/usr/share/ant/lib/ant.jar:/usr/share/ant/lib/jsch.jar:/usr/share/ant/lib/junit.jar -Djava.ext.dirs=/home/contd/iib-10.0.0.5/common/jdk/lib:/home/contd/iib-10.0.0.5/common/jdk/jre/lib/ext -Dant.home=/usr/share/ant org.apache.tools.ant.Main -f /home/contd/AntScript/build_main.xml"

Me sale este error:

sh: 0: Illegal option --

Se supone que el comando anterior es compatible con Linux, pero cuando intento implementar la misma solución (Ant scripting) en Ubuntu, me enfrento a este problema.


55
No creo que el dashshell admita una --loginopción de formato largo : vea DashAsBinSh
steeldriver el

3
Una solución rápida sería reemplazar --logincon just -l.
Seth

Respuestas:


17

shen ubuntu es un enlace simbólico al shell del tablero, no bash. Dash no admite la forma larga --login, pero sí admite la forma abreviada, -l(de man dash):

-l Haga que el guión actúe como si se hubiera invocado como un shell de inicio de sesión.

Reemplazar --logincon -len su comando debería solucionar su problema.

sudo -n -u contd sh -l -c ". <etc>

Si desea invocar bash en lugar de guión, simplemente llame en bashlugar de sh.

sudo -n -u contd bash --login -c ". <etc>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.