记录一下在windows上编写脚本来调用cygwin并执行给cygwin执行的脚本的过程

标题有点绕,其实就是两个脚本,一个是在windows上用来启动cygwin的脚本,另一个是在cygwin中执行某些功能的脚本,然后把它们两个连起来。

由于考虑到功能的自动化,所以想编写一个脚本来将使用交叉编译器编译源代码的过程串起来(https://mp.csdn.net/mp_blog/creation/editor/119726152),自动执行。

1.首先编写shell脚本,供cygwin来调用,其中放入了编译源代码的全过程命令,包括autoscan、aclocal等,和上文中一致,脚本写好之后,直接在cygwin控制台中输入./name.sh运行一下脚本试试,成功了再进行下一步

顺便学了一波命令:
rm 删除文件或文件夹,参数-r 表示递归删除子文件夹中的内容,-f表示强制删除,所以参数这么写:rm -rf 文件夹名称
cp 复制文件或文件夹,cp -r path1 path2 表示把path1复制到path2下,如果"path1"换成"path1/."就是把path1下的文件复制过去,不包括path1这个文件夹
mv 修改文件名
cat > filename << exit 这个指令很棒,完美契合了我需要打开文件并修改其内容的要求,执行指令后会打开文件并进入编辑模式,后续的输入内容直接作为数据写入文件中,然后输入exit表示结束,这样就可以在脚本里实现文件创建及内容编写了,ps:(cat > 表示覆盖从头开始写,cat >> 表示追加在尾部)

chmod a+x 文件名 添加可执行权限


2.接下来就是如何在windows下启动cygwin并让它来调用这个脚本,查了一下资料,直接在cmd控制台里头使用命令:(前提是bash已经添加了环境变量)

bash --login

 
这样之后,就相当于在cmd中进入了cygwin的环境,接下来可以直接运行第一步的脚本,然而,照这样写到.bat脚本文件中,运行之后发现并不行,它只能运行到bash语句,之后的语句完全不执行了
可以有两种方法,使得一连串的语句自动执行:
第一种是,在.bashrc文件末尾,添加你要执行的指令,这样,在cmd调用bash之后,会自动执行这些指令,可以达到效果,但我不喜欢,这样可太怪了,以后要改变的话就得去修改.bashrc文件,这太蠢了;
第二种是,在cmd执行bash命令的时候,同时告诉他你想做的事,可以是一条指令,也可以是一个文件,但执行一条指令太有限了,很多事情没法做,那么只能是一个文件了,一个脚本文件,里面包含了切换目录,执行第一步的脚本文件等我想要写的命令,然后在cmd中执行:
bash --login -c "filename"
filename就是第二个脚本文件咯


所以最终就是这样,一个编译源码的脚本,一个调用该脚本的脚本,其中的内容基本长这样:

cd 某个目录
./build.sh
exit

exit用于自动关闭控制台,根据你的需要来调整吧


于是windows上的.bat只有一句话:
bash --login -i -c "test.sh"
这样,就基本完成了整个流程的串联

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值