实现Linux与Windows下一致的命令行

这其实是个非常简单的东西。

我们会写一些命令行的工具,一般跨平台的话,会用python或者perl写,比如叫foo.py,然后在Windows和Linux下调用这个脚本:

  • Linux: foo.py - 只要在第一行加上:#!/usr/bin/python
  • Windows: python foo.py
    • 直接foo.py是不一定能工作的,除非你在你的系统中设置了<后缀名-程序>的映射,但这个就有问题了,首先,这对本机有依赖关系了;其次,你到底用哪个版本的python?每个系统设置可能不一样 - 作为这个工具的作者肯定希望我们来控制这些因素。

于是,Windows与Linux的命令行就不一致了。。。

解决方案是为windows创建一个同名的batch文件,转调那个python文件:

foo.cmd:

/network/path/python/2.7.3/bin/python foo

同时,正如你看到的,把原来的python文件重命名为foo - 去掉后缀名,于是,现在你有:

  • Windows: foo.cmd
  • Linux: foo (with #!/usr/bin/python)

当你在命令行敲入foo的时候,操作系统会自动帮你选择正确的文件并正确的运行。

当然,如果你不是写python或者perl文件,而直接是shell或者batch脚本,你应该知道怎么命名你的脚本了:

  • Windows: bar.cmd
  • Linux: bar (with #!/usr/bin/bash)
posted @   lzprgmr  阅读(2781)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?

黄将军

点击右上角即可分享
微信分享提示