Назад | Перейти на главную страницу

конвертировать летучую мышь в ш

Я совершенно новичок в написании сценариев в Linux ... поэтому я хочу перенести несколько простых оконных файлов bat на Ubuntu.

Первый файл - это просто

  setenv.bat
    set ANT_HOME=c:\ant\apache-ant-1.7.1
    set JAVA_HOME=c:\java

в 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

но теперь я хочу перенести этот файл 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

но я понятия не имею, как я могу это сделать в вызове Linux ../config/setenv

спасибо за любую помощь, указанное направление.

Это было бы:

#!/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 не закрывалось, я бы посоветовал не переносить его.

В любом случае, это все действительно базовые вещи, взгляните на некоторые базовые руководства по написанию сценариев оболочки, например:
https://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/unixscripting/unixscripting.html

 #!/bin/bash
 cd /path/to/working/directory
 source ../config/setenv
 $ANT_HOME/bin/ant -f ../config/common.xml start_db
 $ANT_HOME/bin/ant -f ../config/common.xml start_server
 sleep 10

Находясь в сценарии, вы можете вызывать сценарии напрямую - однако проблема в том, что все вызовы относительны. Это нормально, если вы можете быть уверены в этом - так что вы можете добавить команду, чтобы убедиться в этом - cd / path / to / working / directory

если вы хотите использовать эти переменные среды, используйте ключевое слово «источник» (также известное как «.») вместо вызова

для запуска программ не нужно ставить префикс «звонок»

Кроме того, на переменные ссылается $ variablename вместо% variablename%

И еще пример:

#!/bin/bash

export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24/
export ANT_HOME=/usr/share/ant

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