实现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)
实现Linux与Windows下一致的命令行的更多相关文章
- Windows下的cmd命令行中设置环境编码
我们都知道,Windows下的cmd命令行默认编码是Windows系统的编码,就是ANSI编码或者说是GBK编码的,这样我们编写的很多应用比如php编写utf-8编码的应用在命令行下面运行时都会出现乱 ...
- Linux和windows下的shutdown命令
Linux下的shutdown命令 shutdown [options] [time] [wall] options: --help 获取帮助 -h 关机 -r 重启 -c 取消 -k 仅显示警告信息 ...
- 在Windows下使用svn命令行教程及svn命令行的解释
本文转载自:https://blog.csdn.net/yangxiao2shi/article/details/50719286/ 以前在公司一直使用git,现在的公司改用svn,一时间还真的不知道 ...
- svn使用规范、在Windows下使用svn命令行工具、svn命令行的解释
以前在公司一直使用git,现在公司有用svn,一时间还真的不知道如何下手,在网上搜寻了很多大神和官网文档的指导,总结了下面一份教程,希望能够帮助大家快速上手,如果想更细致的了解相关内容,可以点击每个小 ...
- 在windows下使用cmd命令行对java文件进行编译和执行
windows下利用cmd命令行可以调用jdk里的javac.exe和java.exe对java文件进行编译和执行,前提是jdk已成功安装并正确配置相关环境变量 相关配置链接:java基础学习总结—— ...
- Python - Git for windows 下使用 交互式命令行
1. 概述 尝试在 windows 环境的 git 命令行使用 python3 的交互模式 2. 环境 OS win10 1905 git 2.20.1 mintty 2.9.4 python 3.7 ...
- windows下使用svn命令行
1.安装“Slik-Subversion-1.9.7-win32.zip”,将路径写入windows的path路径 2.在cmd下可以执行svn 3.应为tortoiseSVN的版本比1的版本低,导致 ...
- windows下使用redis命令行模式查询数据
背景:redis的火,就像java一样,对于测试人员来说,使用它就需要好好搞下,现在就整理下命令行模式,来查询获取自己想要的值: 命令行连接命令:redis-cli -h 主机名 -p 端口号 -a ...
- Linux 和 windows下查看运行命令的位置
经常遇到要查看某个命令的运行文件在哪儿! 比如说vue cli,经常使用vue命令创建项目,如果你对nodejs的全局包安装目录了解可能一下就找到了, 蛋疼的是不一定每个命令都是nodejs下的,有可 ...
随机推荐
- 【转】RHadoop实践系列之一:Hadoop环境搭建
RHadoop实践系列之一:Hadoop环境搭建 RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析.Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来 ...
- python基础(一)
简单的‘Hello World!’ Python命令行 假设你已经安装好了Python, 那么在Linux命令行输入: $python 将直接进入python.然后在命令行提示符>>> ...
- IIS 500.19 错误
HTTP 错误 500.19 - Internal Server Error 错误代码 0x80070021 配置错误 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默 ...
- Android 的提权 (Root) 原理是什么?
作者:Kevin链接:https://www.zhihu.com/question/21074979/answer/18176410来源:知乎著作权归作者所有,转载请联系作者获得授权. Android ...
- C# FTP 命令无法获取ServerU目录列表问题
第一步: 使用C# 的Ftp功能时,发现了一个很奇怪的现象,获取目录列表的命令,在SeverU上面直接返回错误,而在windows自带的FTP上则正常,经过反复试验,终于发现,原来是ServerU默 ...
- php 连续留存与留存人数计算
for($i = 0;$i <= $interval;$i++) { $res = $model->turnround($today,$tomorrow,$flag); $temp = a ...
- Neutron VxLAN + Linux Bridge 环境中的网络 MTU
1. 基础知识 1.1 MTU 一个网络接口的 MTU 是它一次所能传输的最大数据块的大小.任何超过MTU的数据块都会在传输前分成小的传输单元.MTU 有两个测量层次:网络层和链路层.比如,网络层 ...
- Lucene 4.x Spellcheck使用说明
Spellcheck是Lucene新版本的功能,在介绍spellcheck之前,我们需要弄清楚Spellcheck支持几种数据源.Spellcheck构造函数需要传入Dictionary接口: pac ...
- Centos7 更新pip和scipy
更新pip: pip install --upgrade pip 更新scipy包: pip install -upgrade scipy
- POJ1160 Post Office[序列DP]
Post Office Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18680 Accepted: 10075 Des ...