• python


    这里简单介绍一下 Shebang(#!) 的用法

    基础用法

    1. 只在 类 Unix 系统中有效,windows 中可以写,但无效

    2. 必须写在文件 开头,第一行的前两个字符

    3. shebang 指明了执行这个脚本文件的解释程序,或者说解释器

    4. 如果 #! 之后的解释程序是一个可执行文件,那么执行这个脚本时,它就会把文件名及其参数一起作为参数传给那个解释程序去执行

    5. #! 之后的解释程序,需要写其绝对路径(如:#!/bin/bash),它是不会自动到 $PATH 中寻找解释器的

    异常情况

    1. 如果脚本中没有 #! 指定解释器,那么它执行时会默认用当前 shell 去解释这个脚本  (即 $SHELL 环境变量)

    2. 如果 #! 指定的解释器没有可执行权限,则会报错 “bad interpreter: Permission denied”

    3. 如果 #! 指定的解释器不是一个可执行文件,那么这句将被忽略,执行时会用 shell 解释

    4. 如果 #! 指定的解释器不存在,则会报错 “bad interpreter: No such file or directory”

    5. 如果你使用”bash test.sh”这样的命令来执行脚本,那么 #! 这一行将会被忽略掉,解释器当然是用命令行中显式指定的 bash

    在 python 中有两种写法

    #!/usr/bin/python

    一般情况下,python 会被安装到 /usr/bin 目录下,此时这么写是可以的;

    这种方式相当于写死了 python 解释器的路径;

    #!/usr/bin/env python

    这种方式是为了防止用户没有把 python 安装到 /usr/bin 目录下,此时他会到 env 设置里查找 python 的安装路径,在调用该路径下的 python 解释器执行脚本;

    这种方式会自动寻找 python 解释器,推荐写法

  • 相关阅读:
    最近比较毁硬件
    如何编写 Visual C++ 的表达式分析插件
    Windows 安全性编程
    MMX写的memcpy测试
    今天终于摆平了DeskBand
    ASP.NET后台代码调用前台javascript脚本的方法
    ArcGIS Server 9.3前后台交互调用实现点定位
    Oracle中建立存储过程
    建表时自动增加oracle表中记录的ID值
    特定图层的渲染
  • 原文地址:https://www.cnblogs.com/yanshw/p/12522034.html
Copyright © 2020-2023  润新知