博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell编程之Sha-Bang(#!)疑问
阅读量:6037 次
发布时间:2019-06-20

本文共 901 字,大约阅读时间需要 3 分钟。

来源:

  • http://www.cnblogs.com/Simon-xm/p/4337828.html
  • https://segmentfault.com/q/1010000000680188
  • https://en.wikipedia.org/wiki/Shebang_(Unix)

 

Q1:#! 的名字为什么叫Sha-Bang?

A1:Sha-Bang是Sharp和Bang的组合词,Sharp for #,Bang for ! 。

Q2:Sha-Bang(#!)是注释嘛?

A2:Sha-Bang不是注释,所在行的作用是告知该脚本使用的哪种命令解释器,并不是可有可无的。虽然很多情况下省略了Sha-Bang(#!)仍然能够运行脚本,这是由于系统在这种情况下是默认使用了当前命令行解释器的。

Q3:Sha-Bang(#!)的编写有什么规范?

A3:Sha-Bang必须位于脚本的第一行。如果不是在首行,则不起效,系统会使用默认的命令行解释器。

Q4:Sha-Bang(#!)在同一脚本下出现多次,会有问题吗?

A4:只有在首行的Sha-Bang会生效,其余的会被视为注释。

Q5:Python头部 #! /usr/bin/python 和 #! /usr/bin/env python的区别。

A5:使用 /usr/bin/python写法,表示写死了必须用/usr/bin/python目录下的python来执行脚本;使用 /usr/bin/env python 写法,表示声明的时候,会去找PATH中指定的第一个python来执行脚本。这对系统中有多版本python、虚拟环境都是很有意义的,有利于移植脚本到其他平台。

【注】解释器的默认安装路径在各种操作系统是不太一样的,有的是/bin/,有的是/usr/bin,甚至有可能是用户自定义的路径,使用env就基本上能够通用。虽然env可能在/bin/或者/usr/bin/中,但通常的情况是在这两个路径下都有env,或者其中一个是另一个的符号链接。

转载于:https://www.cnblogs.com/superQAQ/p/7645652.html

你可能感兴趣的文章
用vs2008打framework2.0的包
查看>>
spring IOC AOP实现原理
查看>>
Dropbox CEO Drew Houston在MIT 2013年毕业典礼上的演讲:关于一个网球、一个圆圈和一个数字...
查看>>
diango-团队介绍
查看>>
模式识别(第四版)上机实验 【2.2~2.5】
查看>>
ACM-ICPC 2018 焦作赛区网络预赛 A Magic Mirror(签到)
查看>>
iOS 7 新特性:视图控制器切换API
查看>>
pyspider爬取数据导入mysql--1.安装驱动
查看>>
2)队列
查看>>
vc枚举本机端口信息
查看>>
MySQL Profiling 的使用
查看>>
internet笔记
查看>>
【CSS】之hack
查看>>
C# 后台获取前台交互判断
查看>>
适合办公室里做的拉腿运动
查看>>
[Azure][PowerShell][ASM][06]VM Linux
查看>>
今天总算弄明白了JsonResult怎么跟数据库数据进行交互
查看>>
[NOI2005]月下柠檬树[计算几何(simpson)]
查看>>
1164 统计数字
查看>>
时间处理的一些代码片段
查看>>