命令在linux终端中工作,但不在shell脚本中工作

时间:2012-09-09 08:00:32

标签: linux bash svn shell

我正在尝试使用以下命令运行以下shell脚本:

$ 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帮助)。

他们发布了以下错误:

'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命令一切正常!我试图谷歌解决方案,我也搜索了这个论坛,但我找不到任何有用的东西。

帮助我感到非常感激。三江源!

2 个答案:

答案 0 :(得分:1)

  1. 以下命令的输出是什么?:

    $ which bash
    

    这是否按预期显示“/ bin / bash”?

  2. 以下shell脚本的输出是什么(假设为/tmp/x.sh)?:

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

    应该是“svn help”输出。

  3. FINDBUGS_HOME看起来是环境变量,看起来错误地被引用了 以下一行:

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

    %FINDBUGS_HOME%是正确的表示法吗? (它看起来像DOS表示法......) 如果它意味着shell env-var,那就不是了 $ FINDBUGS_HOME?

  4. 注意:上面的$只是bash提示与你的帖子相同。

答案 1 :(得分:0)

看起来您的脚本以DOS格式保存,请尝试使用vim打开并使用

查看文件格式
:set ff

我想它会给你'dos'

要将其转换为unix格式,请使用

:set ff=unix
:w