Linux - Shell - #!/bin/bash
概述
- 简单解释一下 shell 脚本卡头的 #!/bin/bash
- 水一篇, 少一篇
背景
shell 脚本中的注释
- 通常是 以# 卡头的行
但是有时候执行 shell 的时候, 会有这种内容
#!/bin/bash
1. #!/bin/bash
这不是注释
- 他是有意义的
shell 脚本执行
- 场景
- 一个 脚本
- 由 shell 执行
- 场景
!/bin/bash
- 作用
- 指定 shell
- 作用
2. 尝试
场景1: bash
脚本: test01.sh
#!/bin/bash
echo 'hello'
执行
命令
./test01.sh
结果
- 正常显示
场景2: ksh
概述
- ksh 是另外一种 shell
脚本: test02.sh
#!/bin/ksh
echo 'hello'
执行1
命令
./test02.sh
结果
- 提示找不到 ksh
执行2
命令
> bash test02.sh
结果
- 执行成功
执行3
命令
> source test02.sh
结果
- 执行成功
3. 结论
centos 的默认 shell, 是 bash
- 这个不是上面操作得出的结论, 但是还是请各位记住
如果在 脚本 第一行用 #! 指定了执行 shell
- 则 ./ 方式执行, 会使用 指定的 shell
- bash 则会使用 bash 执行
- 在 命令行 指定的 shell 优先级更高
- source 则是使用 当前shell 来执行
4. 建议
- 脚本最好带上这个配置
- shell 之间的不同, 并不仅仅是 名字的差异
- 有一个标注, 可以更清楚的描述环境
- 为自己和后来人少埋一个坑
- shell 之间的不同, 并不仅仅是 名字的差异
ps
ref
- 学习 bash
其他
- 其实 py 脚本, 也有类似的东西
!/usr/bin/python
- 当然这个要是有兴趣, 可以下来研究
- 其实 py 脚本, 也有类似的东西
Linux - Shell - #!/bin/bash的更多相关文章
- Linux:/bin/bash和/bin/sh的区别
bash.dash(/bin/bash和/bin/sh) 原文:http://www.cnblogs.com/dkblog/archive/2011/04/02/2003822.html Linux中 ...
- My way on Linux - [Shell基础] - Bash Shell中判断文件、目录是否存在或者判断其是否具有某类属性(权限)的常用方法
Conditional Logic on Files # 判断文件是否存在及文件类型 -a file exists. #文件存在 -b file exists and is a block speci ...
- Linux Shell基础 Bash常见命令 history、alias命令以及常用快捷键
概述 shell中常见命令history 历史纪录命令:history 命令格式如下: [root@localhost ~]# history [选项] [历史命令保存文件] -c:清空历史命令: ...
- linux shell编程-bash的奇技淫巧
本文主要讲bash脚本中容易出错和很少用但是用起来有意想不到效果的部分. 循环: 正常的for循环: for i in a b c 1 2 3; do echo "$i" done ...
- Linux Shell基础 Bash常见命令 echo命令
概述 shell中常见的命令echo. 输出命令:echo echo命令的输出内容如果没有特殊含义,则将原内容输出到屏幕:如果输出内容有特殊含义,则输出打印其含义. 命令格式如下: [root@loc ...
- Ubuntu学习总结-08 Ubuntu运行Shell脚本报 shell /bin/bash^M: bad interpreter错误问题解决
错误原因之一很有可能是运行的脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MA ...
- shell /bin/bash^M: bad interpreter错误解决
错误原因之一很有可能是你的脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是M ...
- linux shell脚本之-变量极速入门与进阶(1)
1,如果创建shell脚本? 使用任意文本编辑软件,一般为vim,创建.sh结尾的文件,在文件的最开头用 #!/bin/bash 注明shell的类型 如: ghostwu@dev:~/linux/s ...
- ./ . 和#!/bin/bash 辨析Linux如何选择当前执行脚本的shell
最近遇到一个有趣的问题,让我搞清楚Linux如何选择当前执行脚本的shell 执行cts的的 media stress test 需要安装 android-cts-media-1.0.zip 把这个文 ...
随机推荐
- 问题 C: To Fill or Not to Fill
#include <cstdio> #include <vector> #include <algorithm> #include <cmath> us ...
- WeUI基础样式库——写一个移动端界面
WeUI是一套基础样式库,同微信原生视觉体验一致,由微信官方设计团队为微信内网页和微信小程序量身设计的.我们来看看这个基础库样式到底长什么样. 这些密密麻麻的就是压缩后的样式库.密密麻麻地看起来简直要 ...
- Sql Server2008忘记sa登陆密码
Sql的sa登陆密码忘记解决方法: 语句执行的前提: 1.系统可以登陆进去(当不记得sa密码的时候,可以使用windows用户验证的方式进行登陆) 2.平时用sa登陆,点了记住密码但是不记得密码是多少 ...
- LED Mood Light Factory-Smart Mood Light: Control System Principle
Intelligent devices have become more and more widespread in our lives. Intelligent scene lights are ...
- (转)进程同步之临界区域问题及Peterson算法
转自:http://blog.csdn.net/speedme/article/details/17595821 1. 背景 首先,看个例子,进程P1,P2共用一个变量COUNT,初始值为0 ...
- Vue快速认识
1.Vue入门初识 1.1 Vue.js是什么? 一位华裔前Google工程师(尤雨溪)开发的前端js库 作用: 动态构建用户界面 特点: 遵循MVVM模式 编码简洁, 体积小, 运行效率高, 移动/ ...
- Linux終端一行命令发送邮件
近期由于经常需要给别人发送邮件,每次都要打开QQ邮箱觉得非常麻烦.想到Linux终端可以自定义命令,加上python可以实现邮件发送功能,于是自己写了一个终端send + 文件地址的命令. 首先贴上p ...
- SpringBoot学习- 10、设计用户角色权限表
SpringBoot学习足迹 前几节已经基本了解了SpringBoot框架常用的技术,其他的消息队列,定时器等技术暂时用不到,真正项目中如果基于微信系,阿里系开发的话,还要了解平台专用的技术知识,学习 ...
- 将用户名密码邮箱制成表格,以用户名为q结束
print("输入用户名.密码.邮箱长度不能超过20个") s="" while True: v = input("用户名:") if v= ...
- HTML连载62-固定定位练习、z-index属性
一.固定定位应用场景 1.练习 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...