今天在学习Python时遇到一个问题,代码如下:
# !/usr/bin/python
# pro: t01.py
# printing a line of text in Python
print "Welcome to Python!"
|
执行上述程序的时候总是出现如下的错误:
yk@debian-yk:ch02$ ./t01.py
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "zh_CN:zh",
LC_ALL = (unset),
LANG = "en_US.utf-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Warning: unknown mime-type for "Welcome to Python!" -- using "application/*"
Error: no such file "Welcome to Python!"
|
后来我把
改成了
#! /usr/bin/python
或者
#!/usr/bin/python
|
之后,程序均正常通过。
由此,我又查了一些关于“#!”的资料,记录如下:
“#!”实际上是一个2字节的魔法数字,这是指定一个文件类型的特殊标记,换句话说,在这种情况下,指的就是一个可执行的脚本(可键入man magic来获得更多关于这方面的信息)。在“#!”之后接着的是一个路径名。这个路径名指定了一个解释脚本中命令的程序,这个程序可以是shell,程序语言或者是任意一个通用程序。这个指定的程序从头开始解释并且执行脚本中的命令(从“#!”行下边的一行开始),忽略浅释,如:
#! /bin/sh
#! /usr/bin/python
#! /usr/bin/tcl
#! /bin/sed -f
#! /bin/awk -f
|
注意:#!之后给出的路径名必须正确,否则将会出现一个错误信息,通常是“Command not found”,这将是你运行这个脚本所得到的唯一结果。
现在比较奇怪的是:对shell脚本来说“# !/bin/sh”也可以正常通过,如下是我的一个测试脚本:
# !/bin/sh
echo "Hello"
echo
date
|
不知道这是怎么回事,还请知道的解释一下,谢谢
阅读(653) | 评论(0) | 转发(0) |