Я совершенно новичок в написании сценариев в 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