Chinaunix首页 | 论坛 | 博客
  • 博客访问: 520277
  • 博文数量: 174
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 1827
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-15 14:12
文章分类

全部博文(174)

文章存档

2018年(1)

2017年(1)

2013年(3)

2012年(9)

2010年(12)

2009年(5)

2008年(106)

2007年(37)

我的朋友

分类: Python/Ruby

2008-05-14 21:55:11

    今天在学习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
或者
#!/usr/bin/python


之后,程序均正常通过。
    由此,我又查了一些关于“#!”的资料,记录如下:
    “#!”实际上是一个2字节的魔法数字,这是指定一个文件类型的特殊标记,换句话说,在这种情况下,指的就是一个可执行的脚本(可键入man magic来获得更多关于这方面的信息)。在“#!”之后接着的是一个路径名。这个路径名指定了一个解释脚本中命令的程序,这个程序可以是shell,程序语言或者是任意一个通用程序。这个指定的程序从头开始解释并且执行脚本中的命令(从“#!”行下边的一行开始),忽略浅释,如:

#! /bin/sh

#! /bin/bash

#! /usr/bin/python
#! /usr/bin/tcl
#! /bin/sed -f
#! /bin/awk -f


    注意:#!之后给出的路径名必须正确,否则将会出现一个错误信息,通常是“Command not found”,这将是你运行这个脚本所得到的唯一结果。

    现在比较奇怪的是:对shell脚本来说“# !/bin/sh”也可以正常通过,如下是我的一个测试脚本:

# !/bin/sh

echo "Hello"
echo
date


    不知道这是怎么回事,还请知道的解释一下,谢谢
阅读(622) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~