“#!”引起的一个问题
时间:2008-05-14 来源:yk325
# !/usr/bin/python |
执行上述程序的时候总是出现如下的错误:
yk@debian-yk:ch02$ ./t01.py |
后来我把
# !/usr/bin/python |
#! /usr/bin/python |
之后,程序均正常通过。
由此,我又查了一些关于“#!”的资料,记录如下:
“#!”实际上是一个2字节的魔法数字,这是指定一个文件类型的特殊标记,换句话说,在这种情况下,指的就是一个可执行的脚本(可键入man magic来获得更多关于这方面的信息)。在“#!”之后接着的是一个路径名。这个路径名指定了一个解释脚本中命令的程序,这个程序可以是shell,程序语言或者是任意一个通用程序。这个指定的程序从头开始解释并且执行脚本中的命令(从“#!”行下边的一行开始),忽略浅释,如:
#! /bin/sh
#! /bin/bash
#! /usr/bin/python |
注意:#!之后给出的路径名必须正确,否则将会出现一个错误信息,通常是“Command not found”,这将是你运行这个脚本所得到的唯一结果。
现在比较奇怪的是:对shell脚本来说“# !/bin/sh”也可以正常通过,如下是我的一个测试脚本:
# !/bin/sh |
不知道这是怎么回事,还请知道的解释一下,谢谢