温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

源码时代Java干货分享|Shell脚本编程学习入门,只需两个步骤,包你学会!

发布时间:2020-06-02 09:03:53 来源:网络 阅读:302 作者:wx5d51393e4bd0e 栏目:web开发

最近在学习shell编程,对于shell脚本中第一行用于指定脚本解释器的代码到底有没有起到指定解释器的作用感到疑惑,如:#!/bin/bash

在网上查找了不少资料,发现网上竟然也分了两大派,一些人认为#!/bin/bash没有起到作用,因为在shell脚本中#表示是注释的意思,而另一些人则认为是起作用的,但是没有给出令人信服的理由,没办法,我只好自己动手做测试了。
1.首先我先创建了一个名为test.sh的shell文件,里面内容如下

源码时代Java干货分享|Shell脚本编程学习入门,只需两个步骤,包你学会!

这个脚本文件中的第二行代码使用了bash语法,不支持POSIX规范,所以如果这个文件是以bash解释器运行的话,是可以正常运行,而如果换为sh解释器的话,便会报语法错误

修改test.sh权限

源码时代Java干货分享|Shell脚本编程学习入门,只需两个步骤,包你学会!

然后直接执行test.sh

源码时代Java干货分享|Shell脚本编程学习入门,只需两个步骤,包你学会!

可以看到,脚本成功运行,没有报错,然后我将第一行修改为#!/bin/sh

源码时代Java干货分享|Shell脚本编程学习入门,只需两个步骤,包你学会!

2.然后运行
源码时代Java干货分享|Shell脚本编程学习入门,只需两个步骤,包你学会!

这个时候便报了一个语法错误
由此可以得出结论,shell脚本的第一行指定脚本解释器是确实起作用的,不过值得注意的是,当我们使用指定解释器运行脚本的时候,我们脚本文件中的第一行会失效,比如通过bash+文件名运行脚本的方式,这样即便我在文件中指定是sh解释器,结果依然会以bash解释器运行的。
(本文由源码时代技术老师原创撰写,转载请注明出处)

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI