Qual è l'equivalente di Linux ai file batch di Windows?


14

Ho un file batch che utilizzo per creare un file .apk sul mio computer Windows. Ora devo essere in grado di creare il file .apk in Ubuntu ma non so come tradurre il mio file .bat in uno script per poterlo eseguire su Ubuntu.

Di seguito è riportato il file batch che funziona perfettamente su Windows. Potresti darmi qualche suggerimento su come posso eseguirlo su 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

Risposte:


9

Devi imparare a scrivere script bash. Questi sono l'equivalente Linux dei file batch di Windows. La sintassi non è troppo difficile da aggirare. Suggerisco di cercare su google perché ci sono molti tutorial gratuiti e accessibili.

Suggerisco BASH Programming - Introduzione HOW-TO

Nota che dovrai cambiare i tuoi percorsi in stile Windows in stile Linux. Per esempio

my_drive_letter:\my_folder\myfile

diventa

/media/my_drive_label/my_folder/my_file

3

Assicurati di aver installato wineInstalla vino , quindi esegui il seguente comando in un terminale:

wine cmd

Questo aprirà un prompt dei comandi di Windows. Inizia il tuo .batda lì.



1

Non posso fare a meno di ricodificare, ma c'è un documento che spiega come funzionano gli script di shell e quali comandi devi usare. Immagino che dovrebbe essere intelligente riscrivere la tua sceneggiatura:

http://linuxcommand.org/writing_shell_scripts.php


Questo avrebbe dovuto essere lasciato come commento.
Alex
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.