Apa yang setara dengan file batch Windows?

14

Saya memiliki file batch yang saya gunakan untuk membuat file .apk di mesin Windows saya. Sekarang saya harus dapat membuat file .apk di Ubuntu tetapi saya tidak tahu bagaimana menerjemahkan file .bat saya ke skrip untuk dapat menjalankannya di Ubuntu.

Di bawah ini adalah file batch yang berfungsi dengan baik di Windows. Bisakah Anda memberi saya beberapa petunjuk tentang bagaimana saya dapat menjalankannya di 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
Peyman
sumber

Jawaban:

9

Anda perlu belajar menulis skrip bash. Ini adalah setara dengan file batch Windows. Sintaksnya tidak terlalu sulit untuk dipahami. Saya sarankan googling karena ada banyak tutorial bagus yang bisa diakses secara bebas.

Saya sarankan Pemrograman BASH - Pendahuluan BAGAIMANA

Perhatikan bahwa Anda perlu mengubah jalur gaya Windows menjadi gaya Linux. Misalnya

my_drive_letter:\my_folder\myfile

menjadi

/media/my_drive_label/my_folder/my_file
kiri
sumber
3

Pastikan Anda telah menginstal anggurPasang anggur , kemudian lakukan perintah berikut di terminal:

wine cmd

Ini akan membuka prompt perintah Windows. Mulai .batdari sana.

caela
sumber
1

Saya tidak bisa membantu dengan pengodean ulang tetapi ada dokumen yang menjelaskan cara kerja shell-scripting dan perintah apa yang perlu Anda gunakan. Saya kira sebaiknya menulis ulang skrip Anda:

http://linuxcommand.org/writing_shell_scripts.php

Mrokii
sumber
Ini seharusnya dibiarkan sebagai komentar.
Alex