linux - 命令在 linux 终端中有效,但在 shell 脚本中无效

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

不胜感激。谢谢!

最佳答案

  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 ?

注意:上面的 $ 只是 bash 提示符,与您的帖子相同。

关于linux - 命令在 linux 终端中有效,但在 shell 脚本中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12337446/

相关文章:

linux - bash 列出当前文件夹中的子文件夹没有给出预期的结果 [只给出第一个文件夹]

python - 在 virtualenv 中安装gym[atari]

linux - bash - 基于文件名的子字符串运行脚本(可能使用通配符)

C 程序返回码和 && bash 符号?

node.js - 有没有任何nodejs项目可以包装svn命令?

Linux 上的 php 开发 - 永远不要使用/var/directory

linux - 需要 bash 帮助的初学者

linux - 将 grep 结果打印到文件和终端

svn 更新而不进入该目录

Maven 和快照?