繁体   English   中英

将bash脚本移植到可以在Windows上运行的任何内容

[英]port bash script to anything that can be run on windows

移植我使用bash创建的非常基本的应用程序时遇到很大困难,该应用程序在OS X Terminal上运行。

我需要在Windows笔记本电脑上运行该程序的类似版本,因此感觉到我基本上需要重写代码。 我已经尝试过Linux模拟器和新的Windows 10 bash集成,尽管我使用的功能存在问题或无法使用。

我需要它做的简单事情的示例:

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;

感觉就像我准备重新开始,并用另一种语言创建它一样,可以将其制成可能在Windows或将来可能在Android上运行的应用程序。 它可以在我在OS X上设置的环境中很好地工作,但是如果要在任何其他环境上运行它,我只需要指明要走的方向。

非常感谢!

缺口

您是否在Windows下尝试过Cygwin (GPL / LGPL / etc / Open Source。)默认的薄荷 cygwin终端仿真器运行良好。 您可以获得BASH以及您需要的其他任何东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM