我正在尝试使用以下命令运行以下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 help
和svn 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命令一切正常!我试图谷歌解决方案,我也搜索了这个论坛,但我找不到任何有用的东西。
帮助我感到非常感激。三江源!
答案 0 :(得分:1)
以下命令的输出是什么?:
$ which bash
这是否按预期显示“/ bin / bash”?
以下shell脚本的输出是什么(假设为/tmp/x.sh)?:
$ cat /tmp/x.sh #!/bin/bash svn help $ bash /tmp/x.sh
应该是“svn help”输出。
FINDBUGS_HOME看起来是环境变量,看起来错误地被引用了 以下一行:
java -jar %FINDBUGS_HOME%\lib\findbugs.jar ...
%FINDBUGS_HOME%是正确的表示法吗? (它看起来像DOS表示法......) 如果它意味着shell env-var,那就不是了 $ FINDBUGS_HOME?
注意:上面的$只是bash提示与你的帖子相同。
答案 1 :(得分:0)
看起来您的脚本以DOS格式保存,请尝试使用vim打开并使用
查看文件格式:set ff
我想它会给你'dos'
要将其转换为unix格式,请使用
:set ff=unix
:w