Linux中#!表示什么意思?
文章目录
- 1.#!
- 2.#!/usr/bin/python3和#!/usr/bin/env python3的区别:
- 3.在终端中指定解释器和用#!指定
- (1)终端中
- (2)用#!指定
- (3)优先级
- Reference
1.#!
【用途】:用于“指定由哪个解释器来执行脚本” 。
在Unix中,凡是被#!
注释的,统统是加载器(解释器)的路径。比如:#!/bin/bash
(中间没有空格)的意思是说把下面的字符统统传递给/bin/bash
解释器。
【常见】:
#!/bin/lua
#!/bin/perl
#!/bin/python3
#!/usr/bin/env python3
#!/bin/tcl
【注意】:必须指定在第一行才生效
有效:
#!/usr/bin/python3
print("hello #!")
无效1:
#!/usr/bin/python3
print("hello #!")
无效2:
# 无效
#!/usr/bin/python3
print("hello #!")
2.#!/usr/bin/python3和#!/usr/bin/env python3的区别:
#!/usr/bin/python3
:
严格指定路径,告诉OS执行该script时,调用/usr/bin
下的python3解释器。#!/usr/bin/env python3
:(推荐这种写法)
为了防止OS-user没有将python3装在默认的/usr/bin
路径里。当系统看到这一行的时候,首先会到env设置里查找python3的安装路径,再调用对应路径下的解释器程序完成操作。
3.在终端中指定解释器和用#!指定
(1)终端中
【代码内容】hello.py
:
print("hello console")
【执行】
python3 hello.py
python3
就是在终端中指定解释器,我们是这样来执行hello.py
。
而这样不行:
【其他特性】:无视后缀
(2)用#!指定
【代码内容】hello.py
:
#!/usr/bin/python3
print("hello #!")
【执行】:
chmod +x hello.py
赋予可执行权限,然后才可以直接执行。
【其他特性】:无视后缀
(3)优先级
控制台指定的优先级更高。
【代码内容】hello.py
:
#!/usr/bin/python3
print "hello #!"
print "hello #!"
是python2特定的语法,Python3执行会报错。
【执行】
这正好说明了终端指定释义器后,#!
这一行会直接跳过。
Reference
shell第一句话#!/usr/bin/python3的作用
Linux中#!表示什么意思?相关推荐
- c++ 进程快照_如何在 Linux 中找出内存消耗最大的进程
很多次,你可能遇见过系统消耗了过多的内存.如果是这种情况,那么最好的办法是识别出 Linux 机器上消耗过多内存的进程. -- Magesh Maruthamuthu(作者) 很多次,你可能遇见过系统 ...
- linux的tar中ztvf,linux中的tar命令(2)
实例4:只将 /tar 内的 部分文件解压出来 命令: tar -zxvf /opt/soft/test/log30.tar.gz log2013.log 输出: [root@localhost te ...
- centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)
1 PHP简介 PHP(PHP: Hypertext Preprocessor的缩写,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Per ...
- java 外部类似_[求指点] 如何用java 实现类似linux中管道调用外部程序的功能
想写个小程序实现类似linux中管道的功能,创建一个外部子进程,然后主进程不断地写输入给子进程,而后把子进程的返回值取出. 如下的小代码就是从stdin读入一个字符串,调用子进程(cat)返回这个串, ...
- linux 修改java版本_Linux 有问必答:如何在 Linux 中改变默认的 Java 版本
提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...
- linux ls 命令 路径,使用ls命令在Linux中使用完整路径列出文件
许多人会发现,这是重复的问题,但我已经经历了所有问题,然后问及这个主题,但没有为我工作.使用ls命令在Linux中使用完整路径列出文件 我想打印使用ls命令的特定文件格式的完整路径名到目前为止,我发现 ...
- linux中的ln属性,linux 常用基础命令 ln 详细介绍
命令介绍: ln是linux中又一个非常重要命令,ln是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我 ...
- linux内核定义的常用信号6,Linux中的信号
在 Linux 中,理解信号的概念是非常重要的.这是因为,信号被用于通过 Linux 命令行所做的一些常见活动中.例如,每当你按 Ctrl+C 组合键来从命令行终结一个命令的执行,你就使用了信号.每当 ...
- linux用户空间 限制吗,在Linux中限制用户空间
在Linux中限制用户的磁盘使用空间使用的是Quota,一般Quota在安装Linux时就已包括在内核中,不需要另行安装.Quota可以从两方面指定磁盘的储存限制: 使用者所能够支配的索引节点(ino ...
- Linux中的粘滞位
Linux中的粘滞位 Sticky 位是一个访问权限标志位,可以用来标示文件和路径. 历史: 粘滞位是在1974年Unix的第5版中引入的,用来设置可执行文件.当可执行文件设置粘滞位之后,它能够指示操 ...
最新文章
- 技术图文:如何利用BigOne的API制作自动化交易系统 -- 获取账户资产
- rtmp Chunk stream ID 说明
- 文件菜单服务器属性,服务器属性(“数据库设置”页) - SQL Server | Microsoft Docs...
- sendmsg recvmsg函数
- Python基础篇【第6篇】: Python模块subprocess
- 鸿蒙os系统被推送,鸿蒙来了!华为大规模推送鸿蒙OS系统,造成网站一度瘫痪...
- 22 | 哈希算法(下):哈希算法在分布式系统中有哪些应用?
- 增加数据_咱晋城人口又增加了?最新数据来了
- mysql load data 乱码的问题
- 项目分享 | 好牛X的开源项目,看完忍不住分享(高手作品分享)
- 3年,从工程师到创始人
- 定位日站大法之-社会工程学
- Problem 1108 - 淼·诺贝尔
- python中read,readline,和readlines的区别 并逐行输出
- VMware虚拟机安装Win10系统后出现蓝屏
- [转]爬虫的现状和反爬虫
- 5款热门的远程控制软件,让你事半功倍
- 华为云云耀云服务器 中小企业的福音
- Wrong namespace. Expected 'cn.itheima.dao.CustomerMapping' 错误
- webpack加载css样式 ----css相关loader
热门文章
- 【附源码】计算机毕业设计SSM木棉堂水果电商平台
- 2020年软科中国大学排名
- PEX8796等设计资料
- angularjs承诺
- C++实现约分(化简比)
- Smart Jump插件
- 1271:【例9.15】潜水员
- linux设置分区读写属性,嵌入式Linux ubi文件系统制做、分区设置、只读文件系统,uboot启动参数root...
- 解决AttributeError: ‘NoneType‘ object has no attribute ‘val‘ if left.val!=right.val:Line 17 问题
- 布鲁斯口琴进阶教程资料分享