sh:0:不正なオプション-


10

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"

私はこのエラーを受け取ります:

sh: 0: Illegal option --

上記のコマンドはLinuxでサポートされることになっていますが、同じソリューション(Antスクリプト)をUbuntuで実装しようとすると、この問題に直面します。


5
私は考えていないdashシェルは、長い形式のサポート--loginオプションを:参照DashAsBinShを
steeldriver

3
簡単な修正は--login、単にと置き換えることです-l
Seth

回答:


17

shon ubuntuは、bashではなく、dashシェルへのシンボリックリンクです。Dashはlongformをサポートしていません--loginが、省略形-l(from man dash)をサポートしています:

-l ダッシュを、ログインシェルとして呼び出されたかのように動作させます。

コマンド--login-lに置き換えると、問題が解決するはずです。

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

あなたはダッシュの代わりにbashを起動したい場合は、単純に呼び出すbash代わりにsh

sudo -n -u contd bash --login -c ". <etc>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.