连着几天学了三种不同的可执行处理,我觉得有必要放在一起比较一下!
一,写下第一个可执行程序HelloWorld,编辑器我都是用NotePad
Batch批处理(宏),写好后保存文件为HelloBatch.bat
代码语言:javascript复制1 @echo off
2 rem 标识该行是注释
3 echo Hello,world.
4 rem 标准输出到屏幕
Linux shell脚本,写好后保存文件为HelloShell.sh
代码语言:javascript复制1 #!bin/bash
2 #标识该行是注释
3 echo Hello,world.
4 #标准输出到屏幕
python脚本,写好后保存文件为HelloPython.py
代码语言:javascript复制1 #!/bin/env python
2 #标识该行是注释
3 print "Helllo,world."
4 #标准输出到屏幕
二,使之执行
.bat可以直接在解释器cmd.exe中运行:
代码语言:javascript复制1 ./HelloBatch.bat
2 rem 执行DOS批处理
.sh还需要处理DOS文件和UNIX文件的差异,使之可执行。在Linux命令行逐条执行:
代码语言:javascript复制1 cat HelloShell.sh | tr -d 'r' > HelloShellUnix.sh
2 #执行删除r
3 chmod x HelloShellUnix.sh
4 #使之可执行
5 bash HelloShellUnix.sh
6 #执行Linux Shell脚本
7 ./HelloShellUnix.sh
8 #执行Linux Shell脚本的另一个方法,但有时不起效。不知为何?
.py也需要使之可执行。在Linux命令行逐条执行:
代码语言:javascript复制1 chmod x HelloPython.py
2 #使之可执行
3 python HelloPython.py
4 #执行Python脚本
三,同时玩几种语言,有意思但分辨能力、记忆能力都大受考验。
比如一个简单的cd执行从c:/user/myname/进入到f:/worspace/result/,在windows系统与linux环境下,分别为:
代码语言:javascript复制1 rem 初始状态:命令行提示符位于c:/user/myname/
2 f:
3 rem 如果是cd f:是不奏效的
4 rem 执行结果:命令行提示符进入f盘
5 cd workspace/result/
6 rem 执行结果:命令行提示符进入f:/workspace/result/
7 rem 不支持单独的cd进入主目录!
8 c:
9 rem 执行结果:命令行提示符回到c:/user/myname/
代码语言:javascript复制1 #初始位置:命令行提示位置不明,是虚拟环境
2 cd f:
3 #执行结果:进入f盘
4 cd workspace/result/
5 #执行结果:进入f:/workspace/result/
6 cd
7 #执行结果:回到初始位置
8 cd cygdrive/f/workspace/result/
9 #执行结果:进入f:/workspace/result/