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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源码时代Java干货分享|Shell脚本编程学习入门,只需两个步骤,包你学会!相关的知识,希望对你有一定的参考价值。

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

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

技术图片

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

修改test.sh权限

技术图片

然后直接执行test.sh

技术图片

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

技术图片

2.然后运行
技术图片

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

以上是关于源码时代Java干货分享|Shell脚本编程学习入门,只需两个步骤,包你学会!的主要内容,如果未能解决你的问题,请参考以下文章

源码时代Java干货分享|Jvm优化指南

源码时代Java干货分享|Jvm优化指南

源码时代前端干货分享| JavaScript编程优化,超强入门必备技能!

源码时代Java干货分享|SpringSecurity快速上手秘籍

源码时代干货分享|计算机概论和发展

源码时代Java干货分享|带你了解原型模式_prototype