2016-12-04 7 views
0

J'ai beaucoup de difficulté à porter une application très basique que j'ai créée en utilisant principalement bash, qui fonctionne sous OS X Terminal.Port bash script pour tout ce qui peut être exécuté sur Windows

J'ai besoin d'exécuter une version similaire de ce programme sur un ordinateur portable Windows, alors pensez que je dois réécrire le code. J'ai essayé les émulateurs Linux, et la nouvelle intégration de Windows 10 bash, bien que les fonctionnalités que j'ai utilisées soient buggées ou ne fonctionnent pas.

exemples des choses simples que je besoin de faire:

export lev=/home/user/dir 
export shu=/home/user/dir 
export laptime=/home/user/dir 
export currLaptime=/home/user/dir 
export currLaptime=/home/user/dir 
export infant=/home/user/dir 

lev=1; 
shu=0; 
increments=0.5; 
cpuDelay=0.35; 


declare -a laptime=('1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1'); 
say "Distance?"; 
read distance infant; 
if [[ $infant == "i" ]]; then speed=5.5; else speed=6.5; fi 
echo $speed "kph"; 

n=0; 
speedCalc=$speed; 
for i in `seq 1 21`; 
do laptime[n]=$(awk "BEGIN {print ${distance}/($speedCalc/3.6); exit}"); 
    laps[n]=$(awk "BEGIN {print 60/${laptime[n]}; exit}"); 
    laps[n]=$(printf '%.0f' "${laps[n]}"); 
    let n+=1; 
    speedCalc=$(awk "BEGIN {print ${speedCalc} + 0.5; exit}"); 
done; 

turningRoundTime=$(awk "BEGIN {print ((${distance} * 0.02 - 0.29) * -5); exit}"); 
laptimeAdjustment=$(awk "BEGIN {print ${turningRoundTime}-$cpuDelay; exit}"); 


n=0; 
for i in `seq 1 21`; 
do laptime[n]=$(awk "BEGIN {print ${laptime[n]}+$laptimeAdjustment; exit}"); 
    let n+=1; 
done; 

echo "cpu delay: $cpuDelay"; 
echo "Turning round time: $turningRoundTime"; 
echo "laptime adjustment: $laptimeAdjustment"; 

for i in `seq 1 21`; 
do 
currLaptime=${laptime[lev-1]}; 
    for i in `seq 1 ${laps[lev-1]}`; 
    do 
      parallel sh ::: announceLevel.sh sleep.sh; shu=$((shu+1)); 
    done 
lev=$((lev+1)); shu=0; 

impression que je suis prêt à revenir à zéro et de créer cela dans une autre langue, qui pourrait être transformé en une application qui pourrait fonctionner sur Windows, ou peut-être Android à l'avenir. Il fonctionne magnifiquement sur l'environnement que j'ai installé sur OS X, mais j'ai juste besoin d'une indication de la direction à suivre si je dois avoir cette exécution sur un autre environnement.

Merci beaucoup!

Nick

+0

try http://www.batsh.org –

Répondre

0

Avez-vous essayé Cygwin sous Windows? (GPL/LGPL/etc/Open Source.) L'émulateur de terminal cygwin mintty par défaut fonctionne plutôt bien. Vous pouvez obtenir BASH et tout ce dont vous avez besoin.

+0

Merci pour la suggestion, j'ai essayé Cygwin mais c'était trop lent pour le type de script que je construisais. À la fin je suis allé à Upwork.com et a réussi à sous-traiter la tâche de créer ceci sous Windows, l'avait développé à une application GUI utilisant C++ dans Qt, qui fonctionne comme un rêve! – user2742630