将 bat 转换为 sh

Cri*_*ris 2 scripting windows ubuntu

我对在 linux 中编写脚本完全陌生……所以我想将一些简单的窗口 bat 文件移植到 ubuntu。

第一个文件很容易

  setenv.bat
    set ANT_HOME=c:\ant\apache-ant-1.7.1
    set JAVA_HOME=c:\java
Run Code Online (Sandbox Code Playgroud)

在 linux 中我做了这个,看起来没问题

  setenv.sh
      #!/bin/bash
    JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24/
    ANT_HOME=/usr/share/ant
    echo $JAVA_HOME
    echo $ANT_HOME
Run Code Online (Sandbox Code Playgroud)

但现在我想移植这个 bat 文件:startserver.bat

call ../config/setenv

call %ANT_HOME%/bin/ant -f ../config/common.xml start_db
call %ANT_HOME%/bin/ant -f ../config/common.xml start_server


pause
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在 linux call ../config/setenv 中做到这一点

感谢您的任何帮助,方向。

fak*_*ker 5

这将是:

#!/bin/sh
source ../config/setenv.sh
${ANT_HOME}/bin/ant -f ../config/common.xml start_db
${ANT_HOME}/bin/ant -f ../config/common.xml start_server

source将使在 setenv.sh 中设置的变量可用于当前脚本。
${ANT_HOME}/bin/ant将执行 ant 二进制文件。
pause会只是等待,让cmd.exe窗口没有关闭,我不建议端口。

无论如何,这都是非常基本的东西,看看一些基本的 shell 脚本教程,如:https :
//supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/unixscripting/unixscripting.html

  • `.//usr/share/ant/bin/ant` 是一个废话路径,变量前不应该有`./` (3认同)