linux shell脚本中的开头#!/bin/bash的含义
对于linux上需要执行 的shell脚本,通常第一行的内容是
#!/bin/bash
当然有很多时候不规范的写法可以忽略掉这一句,执行起来好像也是ok,结果没什么不一样 。。
这只是因为在我们常用 的linux系统上默认都是执行/bin/bash来执行我们的shell脚本,但是如果有些用户使用的是csh,那么缺少第一行的“#!/bin/bash的shell脚本执行结果就可能存在语法不兼容的问题,导致结果异常或者根本不能执行。
Shell脚本和我们常用的C语言或者C++语言编写编译出来的bin执行当不一样,shell是一种解释性语言,他需要专门的解析器来解析然后执行,不同的脚本语言需要匹配对应的解析器才能解析执行,比如python也是一中解释性编程语言,需要对应的ptthon解释器来解析执行。
我们linux上的shell 是bash shell,所以我们在编写一个脚本的时候需要在第一行添加”#!/bin/bash“. 这句话的意思是告诉执行器需要调用/bin/bash来执行我。
这也是在shell中唯一以#号开头却不代表是注释的意思,其他任何地方以#号开头的语句都会被认为是注释语句而忽略执行,所以这句话只能写在 shell的开头才有效。
#!/bin/bash #this is a test shell pwd #this is a comment who #show date
date
linux shell脚本中的开头#!/bin/bash的含义的更多相关文章
- Linux shell脚本中shift
Linux shell脚本中shift的用法说明 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). ...
- Linux shell脚本中shift的用法说明【转】
本文转载自:http://blog.csdn.net/zhu_xun/article/details/24796235 Linux shell脚本中shift的用法说明 shift命令用于对参数的移动 ...
- 学习Linux shell脚本中连接字符串的方法
这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...
- linux shell脚本中的延时
linux shell脚本中的延时 还是使用 sleep 或usleep函数. 详细如下: .sleep : 默认为秒. sleep 1s 表示延迟一秒 sleep 1m 表示延迟一分钟 ...
- linux shell脚本中使用expect(脚本打开新终端自动远程连接顺便输一点指令)(巨坑)
放弃吧 我找了六个小时都没找到可以用的方案(指标题括号里的内容) 给个曲线救国的方法: 现把expect脚本写成一个文件 在另一个shell脚本中调用
- Linux shell 脚本中使用 alias 定义的别名
https://www.cnblogs.com/chenjo/p/11145021.html 核心知识点: 用 shopt 开启和关闭 alias 扩展 交互模式下alias 扩展默认是开启的,脚本模 ...
- Linux shell脚本中shift的用法说明
shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). 示例1:依次读取输入的参数并打印参数个数:run ...
- Linux shell 脚本报错:/bin/bash^M: bad interpreter: No such file or directory
今天遇到一个很诡异的问题,一直运行很正常的shell脚本失败了,只是昨天增加了一个参数而已. 报错信息: /bin/bash^M: bad interpreter: No such file or d ...
- Linux Shell脚本中获取本机ip地址方法
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:" 命令解释 ...
随机推荐
- CodeForce-803C Maximal GCD(贪心数学)
Maximal GCD CodeForces - 803C 现在给定一个正整数 n.你需要找到 k 个严格递增的正整数 a1, a2, ..., ak,满足他们的和等于 n 并且他们的最大公因数尽量大 ...
- ATR吊灯止损策略 (含有tbquant源码)
ATR吊灯止损策略定义: 做多,止损放在最高价之下N个ATR. 做空,止损放在最低价之上N个ATR. 该策略生成的止损点就像是从市场最高价的"天花板"上悬挂下来的吊灯.所以命名为A ...
- 2.docker安装及原理
一. docker的架构 1.1 docker的架构 先来看docker官网给出的docker架构图: 看官网,docker的架构描述: https://docs.docker.com/get-sta ...
- jmeter监控linux服务器资源
https://blog.csdn.net/weixin_38102592/article/details/100136375 https://blog.csdn.net/liuqiuxiu/arti ...
- mysql 添加远程访问
第一种:mysql 5.0(两种方式) 一. 在命令窗口输入,mysql -u root -p 回车,并输入密码 执行 use mysql 执行下面句子,查看权限,root默认权限为localhos ...
- Linux命令行:free
total used free shared buff/cache availableMem: 251G ...
- MyBatis 面试复习整理
MyBatis MyBatis 是一款优秀的ORM(对象关系映射)框架,可以通过对象和数据库之间的映射,将程序中的对象自动存储到数据库中.它内部封装了 JDBC ,使开发者只需要关注 SQL语句本身, ...
- Java实现四大基本排序算法和二分查找
Java 基本排序算法 二分查找法 二分查找也称为折半查找,是指当每次查询时,将数据分为前后两部分,再用中值和待搜索的值进行比较,如果搜索的值大于中值,则使用同样的方式(二分法)向后搜索,反之则向前搜 ...
- 看动画学算法之:栈stack
目录 简介 栈的构成 栈的实现 使用数组来实现栈 使用动态数组来实现栈 使用链表来实现 简介 栈应该是一种非常简单并且非常有用的数据结构了.栈的特点就是先进后出FILO或者后进先出LIFO. 实际上很 ...
- Java String的探讨
关于String相关内容的学习,历来都是Java学习必不可少的一个经历. 以前一直想要好好总结一下String的相关的知识点,苦于没有时间,终于在今天有一个闲暇的时间来好好总结一下,也希望这文章能够加 ...