shell脚本第一行:#!/bin/bash的含义

2023-05-16

相信有接触过shell脚本的同学们都应该知道,shell脚本的第一行一般会写有以下字样:

#!/bin/bash
或者

#!/bin/sh
或者

#!/bin/awk


比较常见的说法是: 第一行的内容指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行

但我们也知道,在shell脚本里符号#是作为注释符出现的,在其之后的同一行内容会被视为注释进而不执行

那么第一行所谓的指定路径的语句真的会生效吗?或者换个说法,存不存在只是行业规范为了提高代码可读性所做的注释的可能性呢?

我尝试在网上搜索,除了认同第一行作用的说法以外,也确实有人质疑第一行只是普通注释:http://blog.csdn.net/u011175448/article/details/11269949

因为在写脚本的时候也会有不写所谓第一行也能执行的情况

作出这样的揣测也不是毫无道理,毕竟亲测在ubuntu的gedit编辑器支持高亮的情况下,我们看到的代码是这样的,第一行跟注释行颜色是一样的:


????等等!!!!

你再看仔细一点?!第一行跟第二行真的是一样的吗??

没错,我们可以看到第一行的字体被加粗微笑

是因为我第一行写了路径所以加粗了?再接着看:

不管写什么,第一行的#!内容都会加粗。那么接着去除#后面的!:


将第一行的#!改为#后变为了正常的注释,而且重点是第二行的#!部分从字体上看也成了注释,没有指定路径的功能

gedit居然帮我们解释了一切微笑

当然如果你还是不放心,可以试着执行一下(当然记得执行前先用chmod给文件加上执行权限):


乱写第一行的结果就是得到一个完美的报错。

至于为什么不写第一行也能执行,上面这个报错开头也已经给了我们答案:第一行写错或者不写时,系统会有一个默认的解释器进行解释,此处为bash。

结论:第一行的内容指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行。第一行写错或者不写时,系统会有一个默认的解释器进行解释。

以上。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell脚本第一行:#!/bin/bash的含义 的相关文章

  • Linux系列讲解 —— 对装有Ubuntu18.04系统的硬盘进行数据迁移

    目录 0 背景介绍1 参照旧硬盘的分区对新硬盘进行分区2 将旧硬盘分区数据迁移到新硬盘对应分区中补充 xff1a 1 新硬盘启动有问题时的对策 需要启动U盘 0 背景介绍 现有一块装有ubuntu系统的旧硬盘 sda xff0c 电脑主机的
  • VS Code中的GIT操作

    一 前言 我们在进行项目开发时都免不了与GIT打交道 xff0c 但是面对各种的难记的GIT命令总是手足无措 xff1b 还好编译器中内置了GIT的仓库的一系列操作 xff0c 掌握了可视化的操作就不用担心记不住GIT命令符了 下面主要介绍
  • MySQL 建表 技巧

    1 create time 自动填写创建日期 xff0c update time 数据更新之后自动更新时间 使用DDL语句创建 CREATE TABLE 96 production info 96 96 id 96 int NOT NULL
  • Android 连接MySQL 并打包

    1 代码配置 2 打包选项配置 xff0c 一定是mono 43 net 4 x
  • HybridCLR 实战篇

    HybridCLR 实战篇 HybridCLR 是MIT开源的一个unity热更新打包方案 xff0c 该插件不像LUA和ILRuntime那样复杂 官方文档 xff1a https focus creative games github
  • Intellij IDEA中的撤销和回复撤销快捷键

    Intellij IDEA中 1 Ctrl 43 z是撤销快捷键 2 如果想恢复Ctrl 43 z 掉的内容 xff0c 按快捷键为 xff1a Ctrl 43 Shift 43 Z
  • 树莓派-关闭可视化界面

    树莓派 关闭可视化界面 命令行打开boot设置界面重启树莓派 职业玩家不需要图形界面 命令行 打开boot设置界面 span class token comment 打开boot设置界面 span sudo raspi span class
  • 从高考到程序员

    记得当年进入考场的时候也是志气满满 xff0c 心里念叨着一定要考上自己理想的大学 xff0c 光宗耀祖 当时坐在学校安排的bus上向考场的方向行进 xff0c 看到路边的交警叔叔 xff0c 情不自禁的喊了一声 xff0c 交警大哥辛苦了
  • linux zip文件解压命令详解

    文章转自 xff1a http www cnblogs com wangkongming p 4305962 html 1 把 home目录下面的mydata目录压缩为mydata zip zip r mydata zip mydata 压
  • mouse without borders win7安装不了

    mouse without borders 在win7安装的时候提示 Your computer span class hljs keyword has span span class hljs keyword not span been
  • IntelliJ IDEA中工具栏,功能区的显示和关闭

    点击 view xff0c 点击toolbar 显示工具栏 xff0c tool buttons 功能区tab 官人打赏 xff1a http blog csdn net assassinsshadow article details 76
  • chrome 删除厌烦的桔梗导航

    最近突然出现了让人非常厌恶的桔梗导航 xff0c 楼主找了写办法 xff0c 解决了这个bug xff08 程序员的骄傲 xff0c 虽然网上可能有人已经搞好了 xff09 我的系统是win10 1 开始菜单中找到chrome并打开文件位置
  • jetbrans rider 格式化代码时,{}不换行

    因为之前是写JAVA的 xff0c 所以对代码的格式优点洁癖 我希望看到的代码格式是这样的 span class hljs keyword private span span class hljs keyword void span spa
  • unity 设置物体不能被穿透

    墙壁box collider Is Trigger不勾选 cube xff0c rigidbody collision detection 设置为continuous dynamic
  • ROS运行gazebo的错误exit code 134解决方案

    出现此错误会导致Gazebo打不开 xff0c 异常退出 解决办法如下 xff1a 在终端下将环境变量设置为0 export SVGA VGPU10 61 0 此解决方案来自于 xff1a https blog csdn net xiaod
  • docker使用——容器不能访问外网

    如果之前一直正常使用 xff0c 然后发生宿主机可访问外网 xff0c 但容器不能的问题 xff0c 可以尝试重启docker服务解决 xff1a gt gt gt sercice docker restart span class hlj
  • iOS开发遇到的问题

    385 scrollView不接受点击事件 xff0c 是因为事件传递失败 MyScrollView m Created by beyond on 15 6 6 Copyright c 2015年 beyond com All rights
  • C++学习推荐书目

    语言入门 有丰富C经验 缺乏C 43 43 经验的 C 43 43 Primer 3RD 有其他语言的丰富经验的 The C 43 43 Programming Language 简称TCPL 对不住纯C的fans了 如果选择薄一点的书 x
  • 2011年个人总结

    2011 年个人总结 花絮 xff1a 我们习惯总结过去的一年 xff0c 但每年都是一样的 xff0c 我们拼命的工作 xff0c 为了生活 xff0c 一成不变 xff0c 却又常常迷茫 而写写总结 xff0c 是为了以后更好的生活 x
  • VNC连接失败:The connection was refused by the host computer

    解决方法 xff1a 1 用Xshell登陆自己的服务器 2 在命令行中输入vncserver 命令行中出现 xff1a Warning optimal6 2 is taken because of tmp X2 lock Remove t

随机推荐

  • 业务层 、服务层、数据层、表现层

    一般说来 xff0c 业务逻辑层中的模块包含了系统所需要的所有功能上的算法和计算过程 xff0c 并与数据访问层和表现层交互 抽象的说 xff0c 业务逻辑层就是处理与业务相关的部分 xff0c 一般来说 xff0c 业务层包含一系列的执行
  • 计算机视觉:传统图像处理方法

    1 图像分割 经典的数字图像分割算法一般是基于灰度值的两个基本特征之一 xff1a 不连续性和相似性 xff08 1 xff09 基于阈值 xff1a 基于图像的灰度特征来计算一个或多个灰度阈值 xff0c 并将图像中每个像素的灰度值与阈值
  • 基于UGUI实现类似Excel表格功能

    曾经有一个类似这种需求 xff0c 想在Unity中实现类似Excel表中的一个功能 xff0c 能在Scene窗口中 新增行 可视化配置 所见所得 单元格合并 等功能 经过我对UGUI的一些深层次了解以及结合Editor编辑器窗口开发 x
  • 电子货架标签应用浅析(ESL)

    关注与分享 xff0c 是对原创最大的鼓励 年底了 xff0c 会断续介绍几个主要的BLE的应用及市场情况 xff0c 这篇文章介绍的是电子货架标签 xff0c ESL Electronic Shelf Label 文章将从应用简介 xff
  • 最详细UWB技术及特点介绍

    关注与分享 xff0c 是对原创最大的鼓励 这篇文章偏技术 xff0c 信息偏深 xff0c 建议大家可以先跳到感兴趣的章节阅读 xff1b 01 UWB简介 UWB是Ultra Wide Band缩写 xff0c 来源于很久之前的脉冲通信
  • 浅聊Matter协议 (原CHIP协议)

    聚焦 xff1a 芯产品 xff0c 芯市场 xff0c 芯资讯 因为Matter协议目前还没有发布 xff0c 标准只针对部分协会成员开放 xff1b 很多朋友可能听过这个名字 xff0c 然后知道是一个 上层 协议 xff0c 更多内容
  • 2021 MCU WiFi竞争新格局,国产MCU WiFi芯片盘点,附录2020/2021 MCU WiFi排行

    关注智联网事 iotthings xff1a 芯产品 xff0c 芯市场 xff0c 芯资讯 缺货 xff0c 是半导体产业2021年最主要的基调 xff0c 有公司拿不到产能 xff0c 有公司新芯片流片周期大幅拉长 xff1b 新冠病情
  • 芯科(Silabs) Matter 全栈解决方案,附录高质量Matter培训资

    关注智联网事 xff1a 芯产品 xff0c 芯市场 xff0c 芯资讯 对芯科的最初印象 xff0c 最早应该是2014 5年左右 xff0c 当时SI44xx系列渗透了很多市场的客户 xff0c 记得一个是低功耗的特性 xff0c 一个
  • WAF技术选型介绍

    WAF目前是企业必不可少的安全设备 xff0c 目前常见的开源技术选型包括 xff1a jxwafopenstarngx lua wafApache APISIXmodsecurity 介绍参考 xff1a https zhuanlan z
  • int 占多少字节

    char 1 int 4 long 8 float 4 double 8 xff08 1 xff09 使用VC xff0c int类型占4个字节 xff08 2 xff09 使用Turbo C xff0c int类型占2个字节 16位编译器
  • 海外LPWAN的王者是我,一文看懂Wi-Sun协议

    聚焦 xff1a 芯产品 xff0c 芯市场 xff0c 芯技术 注 xff1a 欢迎加入文章底部的 lt 物联坊间 gt 微信 刚刚毕业的我 xff0c 有参与城市照明系统的建设 xff0c 包括城市公交系统 xff0c 那个时候困扰我的
  • 22家国产汽车MCU公司及型号盘点

    专注芯片 xff0c 应用系统 xff0c 行销技能的公众号 如果有一家芯片MCU或模拟公司和你说 xff0c 他不做汽车方向芯片 xff0c 你可以内心欣喜的 xff0c 严肃的问一句 xff0c 为什么 xff1b 做汽车芯片 xff0
  • 2022 MCU公司交卷,总营收84.8亿人民币,排名第一和最后的分别是

    2022财报季结束 xff0c 我们看下上市MCU公司的最新排名 xff0c 毛利 xff0c 库存及库存周转率情况 xff1b 根据 Omdia 的数据 xff0c 2022 年中国 MCU 市场规模约为 82 亿美元 xff0c 小二统
  • 深度:旋转变压器原理,芯片,算法,选型

    之前介绍的新能源汽车电机控制器 MCU 和电动助力转向 EPS 文章中 xff0c 有提到电机的角度反馈可选择转旋转变压器方案 xff0c 今天做个分享 xff0c 欢迎留言交流 本文目录 xff1a 旋转变压器应用及参数概览 旋转变压器原
  • 实时微控制器的关键技术及国产玩家,国产DSP盘点

    小二用芯在写 xff0c 如果您觉得有帮助 xff0c 帮忙朋友圈推荐下 34 xff0c 感谢 xff01 在介绍OBC xff0c DCDC时候 xff0c 觉得有必要对主控芯片做个介绍 xff0c 比如为什么说数字电源的控制一般集成H
  • 天猫精灵的开发者生态

    文章转自 智联网事 欢迎关注 xff0c 每周一篇原创 xff0c 直至 No End https mp weixin qq com s biz 61 MzI3NDE2NDMwNQ 61 61 amp mid 61 2649905740 a
  • 蓝牙Mesh网络性能及网络特点总结(一)

    原文链接 xff1a 欢迎关注公众号 智联网事 xff0c 一周一篇原创文章 xff0c 一起探讨智联网 https mp weixin qq com s biz 61 MzI3NDE2NDMwNQ 61 61 amp mid 61 264
  • 华为物联网(IOT)开发者平台

    智联网事 关注与分享 xff0c 是对原创最大的鼓励 原文链接 https mp weixin qq com s biz 61 MzI3NDE2NDMwNQ 61 61 amp mid 61 2649905835 amp idx 61 1
  • Kubernetes v1.21.14二进制搭建单节点集群

    1 集群环境准备 1 1 主机规划 IP主机名主机角色操作系统安装组件192 168 11 71k8s master1master workerCentos7 9api server controller manager scheduler
  • shell脚本第一行:#!/bin/bash的含义

    相信有接触过shell脚本的同学们都应该知道 xff0c shell脚本的第一行一般会写有以下字样 xff1a bin bash或者 bin sh或者 bin awk 比较常见的说法是 xff1a 第一行的内容指定了shell脚本解释器的路