1. 概述

    1. 简单解释一下 shell 脚本卡头的 #!/bin/bash
    2. 水一篇, 少一篇
  2. 背景

    1. shell 脚本中的注释

      1. 通常是 以# 卡头的行
    2. 但是有时候执行 shell 的时候, 会有这种内容

      #!/bin/bash

1. #!/bin/bash

  1. 这不是注释

    1. 他是有意义的
  2. shell 脚本执行

    1. 场景

      1. 一个 脚本
      2. 由 shell 执行
  3. !/bin/bash

    1. 作用

      1. 指定 shell

2. 尝试

  1. 场景1: bash

    1. 脚本: test01.sh

      #!/bin/bash
      echo 'hello'
    2. 执行

      1. 命令

        ./test01.sh
      2. 结果

        1. 正常显示
  2. 场景2: ksh

    1. 概述

      1. ksh 是另外一种 shell
    2. 脚本: test02.sh

      #!/bin/ksh
      echo 'hello'
    3. 执行1

      1. 命令

        ./test02.sh
      2. 结果

        1. 提示找不到 ksh
    4. 执行2

      1. 命令

        > bash test02.sh
      2. 结果

        1. 执行成功
    5. 执行3

      1. 命令

        > source test02.sh
      2. 结果

        1. 执行成功

3. 结论

  1. centos 的默认 shell, 是 bash

    1. 这个不是上面操作得出的结论, 但是还是请各位记住
  2. 如果在 脚本 第一行用 #! 指定了执行 shell

    1. 则 ./ 方式执行, 会使用 指定的 shell
    2. bash 则会使用 bash 执行
      1. 在 命令行 指定的 shell 优先级更高
    3. source 则是使用 当前shell 来执行

4. 建议

  1. 脚本最好带上这个配置

    1. shell 之间的不同, 并不仅仅是 名字的差异

      1. 有一个标注, 可以更清楚的描述环境
      2. 为自己和后来人少埋一个坑

ps

  1. ref

    1. 学习 bash
  2. 其他

    1. 其实 py 脚本, 也有类似的东西

      1. !/usr/bin/python

    2. 当然这个要是有兴趣, 可以下来研究

Linux - Shell - #!/bin/bash的更多相关文章

  1. Linux:/bin/bash和/bin/sh的区别

    bash.dash(/bin/bash和/bin/sh) 原文:http://www.cnblogs.com/dkblog/archive/2011/04/02/2003822.html Linux中 ...

  2. My way on Linux - [Shell基础] - Bash Shell中判断文件、目录是否存在或者判断其是否具有某类属性(权限)的常用方法

    Conditional Logic on Files # 判断文件是否存在及文件类型 -a file exists. #文件存在 -b file exists and is a block speci ...

  3. Linux Shell基础 Bash常见命令 history、alias命令以及常用快捷键

    概述  shell中常见命令history 历史纪录命令:history 命令格式如下: [root@localhost ~]# history [选项] [历史命令保存文件] -c:清空历史命令: ...

  4. linux shell编程-bash的奇技淫巧

    本文主要讲bash脚本中容易出错和很少用但是用起来有意想不到效果的部分. 循环: 正常的for循环: for i in a b c 1 2 3; do echo "$i" done ...

  5. Linux Shell基础 Bash常见命令 echo命令

    概述 shell中常见的命令echo. 输出命令:echo echo命令的输出内容如果没有特殊含义,则将原内容输出到屏幕:如果输出内容有特殊含义,则输出打印其含义. 命令格式如下: [root@loc ...

  6. Ubuntu学习总结-08 Ubuntu运行Shell脚本报 shell /bin/bash^M: bad interpreter错误问题解决

    错误原因之一很有可能是运行的脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MA ...

  7. shell /bin/bash^M: bad interpreter错误解决

      错误原因之一很有可能是你的脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是M ...

  8. linux shell脚本之-变量极速入门与进阶(1)

    1,如果创建shell脚本? 使用任意文本编辑软件,一般为vim,创建.sh结尾的文件,在文件的最开头用 #!/bin/bash 注明shell的类型 如: ghostwu@dev:~/linux/s ...

  9. ./ . 和#!/bin/bash 辨析Linux如何选择当前执行脚本的shell

    最近遇到一个有趣的问题,让我搞清楚Linux如何选择当前执行脚本的shell 执行cts的的 media stress test 需要安装 android-cts-media-1.0.zip 把这个文 ...

随机推荐

  1. VMware安装CentOS系统与配置全过程

    1.需要哪些安装包 VMware Workstation 15 Pro CentOS-7-x86_64-DVD-1810 hadoop-2.7.3 apache-hive-3.1.1 jdk-8u18 ...

  2. java的开发步骤----

    首先老师给了一个 视频给我:叫我理解java的简单开发步骤: 上两张图: 然后我就理解成了这样::: 简述java开发步骤:第一步: 编写源代码,把源代码写好 :第二部:源代码通过编译器编译成字节码c ...

  3. pandas 读取excel时,遇到数字变为科学计数法了, 怎么破?? 别慌 这样来处理

    # 指定字段以string 方式读取 df = pd.read_excel("./test.xlsx", converters={"id": str})

  4. 连接数据库报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.soc ...

  5. 如何在K3查找BOS单据在哪个子系统中

    select FFunctionID,* from ICClassType where FName_CHS like '%采购订单%'select FSubSysID,* from t_DataFlo ...

  6. 回形数字矩阵(Java)

    将矩阵从里到外分为多层,每一层都是一个口字型数字序列,方向都是顺时针/逆时针,由此我们可以将问题分解为相同的子问题来解决 回形矩阵概述 ☃ 回形矩阵有n行n列 ☃ 数字按顺时针或者逆时针递增 **使用 ...

  7. 基本程序单元Activity

    Activity的4种状态,运行状态,暂停状态,停止状态,销毁状态,下面就是生命周期的顺序图 手动创建Activity 1.创建继承自Activity的Activity 2.重写需要的回调方法 3.设 ...

  8. SequoiaDB巨杉数据库入门:快速搭建流媒体服务器

    使用SequoiaDB的分布式文件系统搭建流媒体服务器 介绍 如今使用移动互联网的年轻人开始越来越多使用短视频展示自我,而流媒体则是支撑在线视频播放的核心技术.当我们开始构建流媒体站点时,往往面临最大 ...

  9. 基于约束条件的SQL攻击

    一.背景 今天看了一篇基于约束条件的SQL攻击的文章,感觉非常不错,但亲自实践后又发现了很多问题,虽然利用起来有一定要求,不过作者的思想还是很值得学习的.原文中的主旨思想是利用数据库对空格符的特殊处理 ...

  10. go语言 RSA数字签名和验证签名

    package main import ( "crypto" "crypto/rand" "crypto/rsa" "crypto ...