Qual é o equivalente do Linux para arquivos em lote do Windows?

14

Eu tenho um arquivo em lotes que eu uso para criar um arquivo .apk na minha máquina Windows. Agora eu preciso ser capaz de criar o arquivo .apk no Ubuntu, mas não sei como traduzir meu arquivo .bat para um script para poder executá-lo no Ubuntu.

Abaixo está o arquivo em lote que funciona bem no Windows. Você pode me dar algumas dicas sobre como posso executá-lo no Ubuntu?

@echo off
set PAUSE_ERRORS=0
:user_configuration

:: Path to Flex SDK 
set FLEX_SDK=C:\sdk\flex_sdk_4.5.1.21328

:: Path to Android SDK
set ANDROID_SDK=C:\sdk\android

:validation
if not exist "%FLEX_SDK%\bin" goto flexsdk
if not exist "%ANDROID_SDK%\platform-tools" goto androidsdk
goto succeed

:validation
if not exist "%FLEX_SDK%\bin" goto flexsdk
if not exist "%ANDROID_SDK%\platform-tools" goto androidsdk
goto succeed

:flexsdk
echo.
echo ERROR: incorrect path to Flex SDK
echo.
if %PAUSE_ERRORS%==1 pause
exit

:androidsdk
echo.
echo ERROR: incorrect path to Android SDK in 'bat\SetupSDK.bat'
echo.

if %PAUSE_ERRORS%==1 pause
exit

:succeed
set PATH=%PATH%;%FLEX_SDK%\bin
set PATH=%PATH%;%ANDROID_SDK%\platform-tools

:: Android packaging
set AND_CERT_NAME="PeymanApp"
set AND_CERT_PASS=fd
set AND_CERT_FILE=cert\SampleApp.p12
set AND_ICONS=icons/android

set AND_SIGNING_OPTIONS=-storetype pkcs12 -keystore "%AND_CERT_FILE%" -storepass     %AND_CERT_PASS%

:: Application descriptor
set APP_XML=application.xml

:: Files to package
set APP_DIR=bin
set FILE_OR_DIR=-C %APP_DIR% .

:: Your application ID (must match <id> of Application descriptor)
set APP_ID=air.com.doitflash.SampleApp

:: Output packages
set DIST_PATH=dist
set DIST_NAME=PeymanApp

:validation
%SystemRoot%\System32\find /C "<id>%APP_ID%</id>" "%APP_XML%" > NUL
if errorlevel 1 goto badid
goto end_validation

:badid
echo.
echo ERROR: Application ID (APP_ID) does NOT match Application descriptor '%APP_XML%'     (id)

echo.

:end_validation

set TARGET=
set PLATFORM=android

::call bat\Packager.bat
if "%PLATFORM%"=="android" goto android-config

:android-config
set CERT_FILE=%AND_CERT_FILE%
set SIGNING_OPTIONS=%AND_SIGNING_OPTIONS%
set ICONS=%AND_ICONS%
set DIST_EXT=apk
set TYPE=apk
goto start

:start
if not exist "%CERT_FILE%" goto certificate
:: Output file
set FILE_OR_DIR=%FILE_OR_DIR% -C "%ICONS%" .
if not exist "%DIST_PATH%" md "%DIST_PATH%"
set OUTPUT=%DIST_PATH%\%DIST_NAME%%TARGET%.%DIST_EXT%
:: Package

echo true
echo.
call adt -package -target %TYPE%%TARGET% %OPTIONS% %SIGNING_OPTIONS% "%OUTPUT%"     "%APP_XML%" %FILE_OR_DIR% -extdir lib/
echo.
if errorlevel 1 goto failed
goto end

:certificate
echo Certificate not found: %CERT_FILE%
echo.

if %PAUSE_ERRORS%==1 pause
exit

:failed
echo APK setup creation FAILED.

if %PAUSE_ERRORS%==1 pause
exit

:end
    
por Peyman 21.07.2012 / 09:48

4 respostas

9

Você precisa aprender a escrever scripts bash. Estes são os equivalentes do Linux dos arquivos em lote do Windows. A sintaxe não é muito difícil de entender. Eu sugiro googling, pois há muitos ótimos tutoriais de livre acesso.

Sugiro Programação BASH - Introdução HOW-TO

Observe que você precisará alterar seus caminhos no estilo do Windows para o estilo Linux. Por exemplo,

my_drive_letter:\my_folder\myfile

torna-se

/media/my_drive_label/my_folder/my_file
    
por user65075 21.07.2012 / 13:50
3

Verifique se você instalou wine , faça o seguinte comando em um terminal:

wine cmd

Isso abrirá um prompt de comando do Windows. Comece seu .bat de lá.

    
por caela 11.09.2013 / 08:35
3

Aprenda python

Você pode querer aprenda python .

É fácil de aprender e mais legível que alguns outra linguagem de script ...; -)

    
por MadMike 10.10.2013 / 13:20
1

Não posso ajudar com a recodificação, mas há um documento que explica como o script de shell funciona e quais comandos você precisa usar. Eu acho que deve ser suficiente para reescrever o seu script:

link

    
por Mrokii 21.07.2012 / 12:45