当前位置: 首页 > news >正文

windows linux 都可执行的脚本 bat, shell 共存

核心, 执行一行解析一行

windows:执行的地方进行解析, 可以任意跳转执行;

bash从上往下解析执行; 一行行解析发现语法错误;

差异: windows可以部分不解析; linux需要从上往下解析合法;

总结:linux, windows可以一上一下共存

# linux code# windows code 

关键: 脚本解析的差异和符号的差异

:windows是注释, bash是强制扩张变量, 或者重定向; 利用这个特性和解析特性,可以使得脚本共存。

代码

:; if [ ! "linux" ] ; then
@echo off
goto :windows_bat_code
exit /b 0
fifunction linux_bash_code
{echo this is linux, linux code program;
} && linux_bash_code && exit:windows_bat_code
setlocal
echo this is windows, windows code program;
endlocal && exit /b 0
  • windows平台, 第一行都是注释; 直接执行2, 3, 4;
  • linux平台;则第二行代码, 执行if, 一定false, 即内部代码不会执行解析; 继续下面执行linux代码;
:; if [ ! "linux" ]; then
echo windows;
exit
else
echo linux
exit
fi

参考

https://stackoverflow.com/questions/17510688/single-script-to-run-in-both-windows-batch-and-linux-bash

http://www.lryc.cn/news/139803.html

相关文章:

  • MATLAB图论合集(二)计算最小生成树
  • unity 模型显示在UI上 并交互(点击、旋转、缩放)
  • html实现页面切换、顶部标签栏(可删、可切换,点击左侧超链接出现标签栏)
  • n-皇后问题(DFS)
  • 漏洞利用和权限提升
  • 开源网安受邀参加软件供应链安全沙龙,推动企业提升安全治理能力
  • 回归分析扫盲:为什么非线性模型不能直接用最优子集选择法
  • 单例模式简介
  • WPF自定义命令及属性改变处理
  • macbook m1 docker中使用go
  • 【Hello Network】DNS协议 NAT技术 代理服务器
  • Android 使用模拟器模拟Linux操作系统
  • 机器学习基础之《分类算法(5)—朴素贝叶斯算法原理》
  • # Go学习-Day6
  • 分布式 - 服务器Nginx:一小时入门系列之 HTTPS协议配置
  • 探秘Linux系统性能监控神器!Linux和Python技术持续学习者必看!
  • 文心一言续写太监小说《名侦探世界的巫师》
  • Solidity 合约安全,常见漏洞(第三篇)
  • Linux安装Redis数据库,无需公网IP实现远程连接
  • 智慧政务,长远布局——AIGC引领,加速推进数字化政府建设
  • 中央处理器(CPU):组成、指令周期、数据通路、控制方式、控制器、指令流水线,补充(多处理器系统、硬件多线程)
  • 开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
  • Nginx的HTTPS部署与安全性能优化
  • 5.8. Trusted Board Boot
  • 微信小程序——van-field中的left-icon属性自定义
  • 一文学会lua脚本
  • 学习JAVA打卡第四十二天
  • 2023-8-25食物链
  • 为什么要使用IP地址进行定位
  • CSS概念