• 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 解释器,推荐写法

  • 相关阅读:
    Linux文件系统_每一个的意义
    Linux启动的流程
    Linux
    awk编程
    Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
    spring boot get和post请求,以及requestbody为json串时候的处理
    Spring Boot快速入门
    Spring Boot 实用MyBatis做数据库操作
    极简操作无需root隐藏S8导航栏和状态栏
    springboot(三):Spring boot中Redis的使用
  • 原文地址:https://www.cnblogs.com/yanshw/p/12522034.html
Copyright © 2020-2023  润新知