#!/bin/bash 在shell脚本中到底起作用没?
2019/09/19 15:39 分类: 技术交流 浏览:1
最近在学习shell编程,对于shell脚本中第一行用于指定脚本解释器的代码到底有没有起到指定解释器的作用感到疑惑,如:#!/bin/bash
在网上查找了不少资料,发现网上竟然也分了两大派,一些人认为#!/bin/bash没有起到作用,因为在shell脚本中#表示是注释的意思,而另一些人则认为是起作用的,但是没有给出令人信服的理由,,,没办法,我只好自己动手做测试了,,,
首先我先创建了一个名为test.sh的shell文件,里面内容如下
这个脚本文件中的第二行代码使用了bash语法,不支持POSIX规范,所以如果这个文件是以bash解释器运行的话,是可以正常运行,而如果换为sh解释器的话,便会报语法错误
修改test.sh权限
然后直接执行test.sh
可以看到,脚本成功运行,没有报错,然后我将第一行修改为#!/bin/sh
这个时候便报了一个语法错误
由此可以得出结论,shell脚本的第一行指定脚本解释器是确实起作用的,不过值得注意的是,当我们使用指定解释器运行脚本的时候,我们脚本文件中的第一行会失效,比如通过bash+文件名运行脚本的方式,这样即便我在文件中指定是sh解释器,结果依然会以bash解释器运行的
参见
- DDLE教育后勤展:500家企业同场,AI 开始接管校园后勤2026-09-02
- 山东省菏泽市巨野县消防救援大队2026年主副食采购招标项目公开招标公告2026-10-30
- 2027京津冀(廊坊)AI 算力、数据中心液冷技术展览会-AI ,算力,数据2026-10-30
- 2026上海国际智慧口岸建设大会暨口岸科技装备展览会-2026年展会,智慧口岸2026-10-30
- 2026厦门智慧环卫与市政设施及清洁设备博览会-2026年展会,环保展2026-10-30
- 企业新闻-浙江雷诺尔电气有限公司官网2026-10-30