实现Linux与Windows下一致的命令行
2013-06-25 20:58
639 查看
这其实是个非常简单的东西。
我们会写一些命令行的工具,一般跨平台的话,会用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:
同时,正如你看到的,把原来的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)
我们会写一些命令行的工具,一般跨平台的话,会用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)
相关文章推荐
- Linux和WINDOWS下JAVA代码实现,用命令行实现对apk包重新签名打包优化
- Windows与VMware下的Linux文件如何实现共享
- Samba实现Windows与Linux文件共享设置
- 局域网中实现Linux和Windows文件共享
- 实现虚拟机上面的linux系统和windows主机的通信
- 实现一个命令行linux终端应用程序,把输入的指定文件,映射到内存中,并打印出文件内容
- Debian下用samba实现windows与linux文件共享(同事的blog,拿来备份)
- 利用Xmanager实现windows与linux远程桌面连接
- Linux -- 配置Samba加入Windows活动目录,实现Windows中DFS功能
- linux下 配置VSFTP 实现 Fedora与windows互访
- Curl实现Linux到Windows(FTP)的数据同步
- Rsync实现Windows系统与Linux文件同步
- Xshell实现Windows上传文件到Linux主机
- Linux多定时器实现之三——Windows和Linux通用版
- Linux下简单配置SAMBA服务,实现与Windows系统文件共享.
- samba实现Windows和Linux的相互访问
- 在linux系统下,简单实现类似windows的_splitpath函数的功能
- winSCP实现windows与Linux之间的数据传输
- 跨平台(WIndows, Linux, VxWorks) getTickCount实现 本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.li
- linux与windows文件共享的实现