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#在运行时自动引入正确的Dlls
设置程序Dlls的搜索路径 1.导入Native函数 /// <summary> /// 设置Dlls的搜索路径 /// </summary> /// <param na ...
- C#扩展枚举的别名
C#扩展枚举的别名 用途: 提高代码的可读性. 打印到日志系统,方便于调试. 代码: 首先编写一个Attribute [AttributeUsage(AttributeTargets.Enum | A ...
- JS 百度地图路书---动态路线
JS 百度地图路书---动态路线 <!DOCTYPE html> <head> <meta http-equiv="Content-Type" con ...
- Wannafly Camp 2020 Day 6N. 合并!
#include <bits/stdc++.h> using namespace std; int n,a[2005]; int main() { long long ans=0; cin ...
- localStorage存、取数组
localStorage存储数组时需要先使用JSON.stringify()转成字符串,取的时候再字符串转数组JSON.parse(). var arr=[1,2,3,4]; localStorage ...
- npm 升级到最新版本
先npm -v查看自己的npm 是否是最新版本,如果不是则进入安装node的文件夹,可通过 where node 查找该文件夹. 进入之后使用: npm i npm -g 之后使用: npm -v 查 ...
- 占位 RK
占位 RK include: RK403 RK404
- matplotlib 的一些知识
import matplotlib.pyplot as plt plt做图有两种方式,一种是面向对象编程方式的,一种是直接利用plt的结构化的快速绘图编程方式.所以命令不能用错地方. fig=plt. ...
- 解决Bootstrap container样式左右内边距15px,导致屏幕不美观
首先上问题:此问题为bootstrap的 container样式导致,该样式默认左右内边距15px为了栅栏效果而设计,具体看源码css样式,如下图,右侧黄色边框边距和30px,实为两个div左浮动,将 ...
- setUserData
node.setUserData();//设置每个节点的datanode.getUserData();