首页 > 自考资讯 > 自考知识

Shell简介

头条共创 2024-08-05

一、Shell脚本建立

1. 什么是shell

    Shell是一个命令解释器,它在操作系统的最外层负责直接与用户对话,把用户的输入解释给操作系统,并且处理操作系统的输出结果,输出到屏幕给用户。这种对话方式可以是交互方式或者非交互式(脚本)的。

2. 什么是Shell脚本

    当Linux命令或者语句不在命令行下执行,而是通过一个程序文件执行时,该程序就被称为shell脚本。用户在shell脚本中写入一系列的命令语句组合,并且将这些命令、变量和流程控制语句有机的组合在一起就形成了一个功能强大shell脚本。

3. Shell脚本的建立

    在Linux中Shell脚本通常是在编辑器(vi/vim)中编写的,脚本的第一行会指出由哪一个解释器来执行脚本中的内容,比如:

#! /bin/bash## network       Bring up/down networking#...

    脚本中开头的"#!"被称为幻数,在执行bash脚本时,内核会根据“#!”后的解释器来确定使用何种解释器来解释脚本的内容。值得注意的是这一行必须顶行来写。另外有时在脚本中会看到顶行的解释器写的是/bin/sh,这与/bin/bash有什么区别呢?

[root@localhost init.d]# ll /bin/shlrwxrwxrwx. 1 root root 4 Oct  1 14:27 /bin/sh -> bash

    可以看到/bin/sh是/bin/bash的软链接,没什么区别,不过一般系统自带的shell脚本使用/bin/bash,用户自定义的一般指定/bin/sh。假如脚本中不指定解释器的话(第一行省略)就会使用系统默认的解释器,也就是bash,不过最好还是自己写上,比较符合规范。     另外就是shell中使用"#"进行注释,"#"后面的内容不会被解释器执行,只是单纯的注释,方便开发人员与自己查看功能说明,注释内容可以单起一行,也可以写在脚本后面。

2. 规范

开头指定脚本解释器脚本中尽量使用英文注释,避免乱码脚本以.sh作为扩展名对于()、[]等成对的一次写出来,并且[]中内容两侧有空格;流程控制与迭代语句一次将结构写完整,然后再写中间内容

二、Shell脚本执行

    当shell脚本以非交互式的方式运行时,它会先查找环境变量ENV,该变量指定了一个环境文件(比如.bashrc、.bash_profile、/etc/profile等),然后从该环境变量文件开始回字形,当读取了ENV文件后,shell才开始执行shell脚本中的内容。 shell脚本的执行通常有以下三种方式:

bash test.sh 或 sh test.sh./test.sh(当前路径执行脚本)source test.sh 或. test.sh

    第一种方式是脚本文件本身没有可执行权限时常使用的方法,推荐使用bash执行;第二种方式需要将脚本文件的权限改为可执行(chmod u+x test.sh),然后通过脚本路径就可以执行脚本了;第三种方式是使用source或者"."点号加载sehll脚本文件,该方式可以将脚本中变量或者函数导出到当前环境中进行调用。

# 使用source或者"."可以将脚本中的变量获取,但是如果使用其它两种方式,# 脚本一旦执行完毕后获取不到变量[root@localhost project]# echo 'user=`whoami`' > test.sh[root@localhost project]# . test.sh [root@localhost project]# echo $userroot

但是如果使用其它两种执行方式是没有这种效果的:

# 输出为空[root@localhost project]# echo 'user=`whoami`' > test.sh[root@localhost project]# /bin/sh test.sh [root@localhost project]# echo $user...

版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除

猜你喜欢

  • Shell简介

    Shell简介

    一、Shell脚本建立1. 什么是shell    Shell是一个命令解释器,它在操作系统的最外层

    来源:中国自考网 2024-08-05
  • Shell是什么?1分钟理解Shell的概念!

    Shell是什么?1分钟理解Shell的概念!

    现在我们使用的操作系统(Windows、Mac OS、Android、iOS 等)都是带图形界面的,

    来源:中国自考网 2024-08-05
  • 南开大学研究生信息门户网,南开大学研究学院

    南开大学研究生信息门户网,南开大学研究学院

    找资格考试考研资料,练电子书题库真题押题,看答案详解视频精讲,就上星蓝海学习网(xlh.100xue

    来源:中国自考网 2024-08-05
  • Shell的介绍

    Shell的介绍

    1、Shell的由来我们比较熟悉Windows系统的图形化界面,对于图形界面来说,用户点击某个图标就

    来源:中国自考网 2024-08-05
  • 网络词汇基本概念,什么是shell?

    网络词汇基本概念,什么是shell?

    什么是shell 操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。sh

    来源:中国自考网 2024-08-05
  • 南开考研报名人数,南开研究生报名人数

    南开考研报名人数,南开研究生报名人数

      日前,2020年全国硕士研究生招生考试报名确认工作结束,据教育部有关数据库最新统计,今年全国共有

    来源:中国自考网 2024-08-05
  • shell概述

    shell概述

    1、概述Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的命令行

    来源:中国自考网 2024-08-05
  • 南开大学2021年研究生招生变动,南开大学2022年研究生招生目录

    南开大学2021年研究生招生变动,南开大学2022年研究生招生目录

    各位考生:根据《教育部关于切实做好新型冠状病毒感染的肺炎疫情防控工作的通知》、《教育部关于切实做好新

    来源:中国自考网 2024-08-05
  • 什么是shell

    什么是shell

    shell是用户和Linux操作系统之间的接口。Linux中有多种shell,其中缺省使用的是Bas

    来源:中国自考网 2024-08-05
  • 一篇文章从了解到入门shell

    一篇文章从了解到入门shell

    1、shell介绍shell 俗称叫做壳,计算机的壳层,和内核是相对的,用于和用户交互,接收用户指令

    来源:中国自考网 2024-08-05