当前位置: 首页 > news >正文

linux脚本开头的#!/bin/bash有什么作用

概述

linux脚本的开头都有一行注释,例如: #!/bin/bash或者#!/bin/sh,这行注释的作用就是声明解析当前文件要使用的解释器。通常我们写的脚本都是包含各种系统命令,来实现定制功能的,所以都是使用bash和sh解释器的。

解释器

其实就是一个可执行程序。例如可以在脚本中使用#!/usr/bin/python来声明,这样运行脚本时就会使用python来解析。
添加脚本前面的声明行就就类似于执行了下面的命令

<解释器> <脚本文件>

例如:
#!/bin/bash 就等于 bash <脚本文件>

实例:

1. 不声明解释器的方式

新建一个test01的文件,写入如下内容:

echo hello

使用sh或bash来运行此文件
在这里插入图片描述

2. 声明解释器的方式

修改test01的内容如下

#!/bin/bash
echo hello

添加可执行权限后,运行此文件,输出如下:
在这里插入图片描述

3. 使用其他的解释器

现在我们修改解释器,改为#!/bin/cat

#!/bin/cat

echo hello

再次运行test01文件,结果如下,和我们直接使用cat ./test01是一样的效果。
在这里插入图片描述

相关文章:

  • git如何撤销未提交的更改
  • Qt动态更改界面语言(在运行状态下改变界面语言)
  • .gitignore文件---让git自动忽略指定文件
  • 解决QMYSQL driver not loaded问题
  • 信息安全之对称加密技术
  • 信息安全之非对称加密技术
  • 信息安全之数字信封原理
  • 信息安全之信息摘要技术
  • 信息安全技术之数字签名
  • 设置Mysql C API断线自动重连
  • mysql_query()和myql_real_query()的区别
  • mysql_store_result和mysql_use_result的区别
  • linux下实时跟踪文件变化tail指令
  • 解决windeployqt打包QML程序无法启动的问题
  • windows下如何找到占用文件或文件夹的程序
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • AHK 中 = 和 == 等比较运算符的用法
  • ES6核心特性
  • javascript从右向左截取指定位数字符的3种方法
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • nfs客户端进程变D,延伸linux的lock
  • PhantomJS 安装
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • python学习笔记-类对象的信息
  • vue 个人积累(使用工具,组件)
  • 阿里云Kubernetes容器服务上体验Knative
  • 阿里云购买磁盘后挂载
  • 欢迎参加第二届中国游戏开发者大会
  • 离散点最小(凸)包围边界查找
  • 强力优化Rancher k8s中国区的使用体验
  • 容器服务kubernetes弹性伸缩高级用法
  • 设计模式(12)迭代器模式(讲解+应用)
  • 用Visual Studio开发以太坊智能合约
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​一些不规范的GTID使用场景
  • (办公)springboot配置aop处理请求.
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (十六)一篇文章学会Java的常用API
  • (未解决)macOS matplotlib 中文是方框
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .Net 应用中使用dot trace进行性能诊断
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • /usr/bin/env: node: No such file or directory
  • @Builder用法
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [ Linux ] Linux信号概述 信号的产生
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • [ 第一章] JavaScript 简史
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [AutoSar]BSW_OS 01 priority ceiling protocol(PCP)