0

コマンドを使用して次のシェル スクリプトを実行しようとしています。

$ bash linuxScript.sh

これは私のスクリプトがどのように見えるかです

#!/bin/bash
svnroot=.../resources
FINDBUGS_HOME="~/opt/findbugs-2.0.1"
svn help
svn export --force ".../resources/GUI.jar"

opt=$1 
case $opt in
     -normal)
    echo "normal mode"
    java -jar %FINDBUGS_HOME%\lib\findbugs.jar -textui -onlyAnalyze common.-,ufm.- -output UFMGUI_Normal.html -html GUI.jar;;
    ...
esac

何らかの理由で、コマンドがうまく機能svn helpsvn exportません (私は自分の主張を強調するためだけに svn help を呼び出しています)。

彼らは次のエラーを出しました:

'unknown command: 'help
Type 'svn help' for usage.
' is not properly URI-encodedaire.com/repos/ufm_ui/branches/UFM_3_7/tools/build/resources/GUI.jar

そして、私がすでに尋ねている場合は、svn に関連しないコマンドでも叫びます:

:command not founde 7:
'inuxScript.sh: line 8: syntax error near unexpected token 'in
'inuxScript.sh: line 8: 'case $opt in

奇妙なことに、ターミナルで svn コマンドを入力すると、すべて正常に動作します。解決策をグーグルで検索しようとしましたが、このフォーラムも検索しましたが、役立つものは見つかりませんでした。

助けていただければ幸いです。ありがとうございました!

4

2 に答える 2

1
  1. 次のコマンドの出力は何ですか?:

    $ which bash
    

    期待どおりに「/bin/ bash」が表示されますか?

  2. 次のシェルスクリプトの出力は何ですか(/tmp/x.shを想定)::

    $ cat /tmp/x.sh
    #!/bin/bash
    svn help
    
    $ bash /tmp/x.sh
    

    「svnhelp」出力である必要があります。

  3. FINDBUGS_HOMEは環境変数に見え、次の行で誤って参照されているように見えます。

    java -jar %FINDBUGS_HOME%\lib\findbugs.jar ...
    

    %FINDBUGS_HOME%は正しい表記ですか?(DOS表記のように見えます...)シェルenv-varを意味する場合、それは$ FINDBUGS_HOMEではありませんか?

注:上記の$は、投稿と同じbashプロンプトです。

于 2012-09-09T08:26:01.113 に答える
0

スクリプトがDOS形式で保存されているようです。vimで開いて、ファイル形式を確認してください。

:set ff

私はそれがあなたに「やること」を与えると思います

UNIX形式に変換するには、次を使用します。

:set ff=unix
:w
于 2012-09-10T05:54:44.810 に答える