Linux - Shell - #!/bin/bash

  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. 当然这个要是有兴趣, 可以下来研究

原文地址:https://www.cnblogs.com/xy14/p/12041252.html

时间: 2024-08-24 22:25:40

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

linux shell编程-bash的奇技淫巧

本文主要讲bash脚本中容易出错和很少用但是用起来有意想不到效果的部分. 循环: 正常的for循环: for i in a b c 1 2 3; do echo "$i" done 数字序列循环: for i in `seq 100`; do echo "$i" done 其中的 `seq 100` 也可以换成 {1..100} {开始..结尾}的这种形式可以表示连续的数列,可以从小到大也可以从大到小,但是可惜不像python的range()那样可以指定间隔量 C语

Linux基础之bash脚本编程初级-变量

什么是变量? 变量最初来源于数学,指的是非固定的值可变化的数通常用拉丁字母表示.在计算机中变量它依旧指的是可变化的数,只不过表现形式有些变化.它指的是变量名+所指向的内存空间. 以下实验环境均在CentOS7.2进行 变量的特点 变量分强类型变量,与弱类型变量 强类型变量:变量需事先声明且需提前定义其变量存储格式 弱类型变量:不需事先声明,不需定义变量存储格式. bash把所有变量统统视作字符型:bash中的变量无需事先声明,相当于,把声明和赋值过程同时实现. 变量名的命名规范: 变量名只能包含

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执

Linux shell command学习笔记(一)

Key points: Shell种类,echo,$,基本语法,ls,man,su,sudo,grep,ps,clear,cp,rm,cat,more 参考:http://www.jb51.net/LINUXjishu/45329.html Shell的种类有很多种,例如CSH,Bourne Shell,Korn Shell.在现在的大多数Linux发行版中,默认的Shell一般都是Bourne again shell(bash). <echo> echo $SHELL 在Linux中,$符号

LINUX SHELL脚本攻略笔记[速查]

Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述符和重定向 cat 数组和关联数组 alias date 调试脚本 函数和参数 管道 读取命令输出 read 字段分隔符和迭代器 循环 比较和测试 find xargs tr md5sum sha1sum 对目录进行校验 sort uniq tempfile split bash变量匹配切分 exp

Linux Shell编程总结

1.Shell脚本运行原理 Linux Shell脚本类似于Windows的批处理,但它有着比Windows批处理强大很多的功能.Shell脚本实际上是一个Shell命令的堆叠,再配合上Shell的运算,条件判断,循环结构及逻辑判断等语法,使得Shell脚本程序实现强大的功能.那么Shell脚本是怎么运行的呢? 说到Shell脚本的运行我们就先要说说Shell是什么.我们从字面意思可以看出,Shell是一个壳,它即是操作系统提供给用户的管理操作系统的接口,类似于Windows中的Explorer

Linux Shell学习--awk命令详解

(1).awk介绍 awk是由Alfred Aho .Peter Weinberger 和 Brian Kernighan于1977年开发的变成语言,awk是上述三位创建者姓的首字母. Awk的基本语法与c语言类似,如果对c语言很熟悉,那么学习awk编程也将事半功倍. Awk功能与sed相似,都是用来进行文本处理的,awk语言可以从文件或字符串中基于指定规则浏览和抽取信息,在抽取信息的基础上,才能进行其他文本操作.   awk是一款设计用于数据流的工具.它颇有玩头的原因就在于可以对列和行进行操作

linux shell 的切换

如果需要修改默认的shell(一般是bash shell),以便使用的顺手. 先查看系统可用的shell种类 [[email protected] ~]$ chsh -l /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/ksh 修改当前的shell [[email protected] ~]$ chsh Changing shell for oracle. Password: New shell [/bin/bash]: /bin/

Linux shell入门基础(六)

六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行的角色是不一样的: #shell scripts(UNIX Like系统的原则有一条:程序越短越好) #bash csh tcsh ksh #which startx(查看文件的路径) /usr/X11R6/bin/startx #vi `which startx` #!/bin/sh …… #vi