LinuxShell脚本——认识Shell脚本

摘要:本文主要介绍了Shell脚本的一些基本知识。

什么是Shell脚本

shell脚本是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,达到所想要的处理目的。

shell脚本就像早期dos年代的.bat,最简单的功能就是将许多指令汇整写一起,让使用者很容易地就能够一个操作执行多个命令,而shell脚本更是提供了数组、循环、条件以及逻辑判断等重要功能,让使用者可以直接以shell来写程序。

基本结构

#!/bin/bash

这句话的作用是标明我以下写的脚本使用的是BASH语法,只要写的是基于BASH的Shell脚本都应该这样开头。

在Linux中默认的Shell环境就是BASH,所以在Linux里面不加这一句也可以运行。如果把脚本放在默认环境不是BASH的环境中运行,又或者编写脚本的不是纯BASH语言,而是嵌入了其他语言,那么这个脚本就不能正确执行了。所以Shell脚本都必须以“#!/bin/bash”开头。

注释

在Shell脚本中,除“#!/bin/bash”这行外,其他行只要以“#”开头的都是注释。

程序的主体

Linux的命令可以直接在脚本中执行。

执行脚本

赋予执行权限,直接运行

这种方法是最常用的Shell脚本运行方法,也最为直接简单。就是赋予执行权限之后,直接运行。当然,运行时可以使用绝对路径,也可以使用相对路径。

如果将shell.sh放在PATH指定的目录内,这样就可以像Linux系统命令一样,不用指定路径直接运行了。

赋予执行权限:

 [root@localhost sh]# chmod  shell.sh

使用绝对路径执行:

 [root@localhost sh]# /root/sh/shell.sh

使用相对路径执行:

 [root@localhost sh]# ./shell.sh

通过bash命令调用运行脚本

这种方法的意思是直接使用bash或者sh去解释脚本中的内容,所以这个脚本也可以正常运行。使用这种方法运行脚本,甚至不需要脚本文件有“执行”权限,只要拥有“读”权就可以运行了。

因为/bin/sh其实就是/bin/bash的一个链接,使用 sh shell.sh 就是告诉系统想要直接以bash的功能来执行shell.sh。

使用bash命令执行:

 [root@localhost sh]# bash shell.sh
[root@localhost sh]# sh shell.sh

使用source命令执行

source命令或者“.”命令可以读入脚本并执行脚本,即在当前Shell环境中加载并执行的相关脚本文件的命令及语句,而不是产生一个子Shell来执行文件中的命令。

该命令主要用于让重新配置的环境变量配置文件强制生效。

使用source命令执行:

 [root@localhost sh]# . shell.sh
[root@localhost sh]# source shell.sh

编写一个脚本并执行

编写脚本

使用vim命令创建并修改脚本文件:

 [root@localhost ~]# vim test.sh

在vim编辑器里输入脚本内容并保存:

 #!/bin/bash
echo "Hello World"

执行脚本

使用sh命令执行脚本:

 [root@localhost ~]# sh test.sh
Hello Word
[root@localhost ~]#

LinuxShell脚本——认识Shell脚本的更多相关文章

  1. Centos 环境一键部署脚本(shell脚本)

    谨以此文纪念吊炸天的Centos环境一键部署方案的新鲜出炉 辛苦大半年,产品准备上线了,BOSS亲自体验安装部署,看着超过200+页的安装文档直接崩溃了(需要部署23个基础服务),经历了超过3个小时的 ...

  2. 【shell脚本】shell脚本实现的 函数差集查找

    文本地址 点击关注微信公众号 wenyuqinghuai 分享提纲: 1. 问题背景 2. 代码实现 1.问题背景 在做公司的测试的自动化测试时,覆盖了一些开发代码的函数,但是那些还没有做,使用一个函 ...

  3. Shell脚本、Shell脚本结构、date命令的用法、变量

    1.Shell脚本: shell是一种脚本语言 目的:可以实现自动化运维,能大大增加运维的效率.2.Shell脚本结构:   #!/bin/bash  以#!/bin/bash开头,即以/bin/ba ...

  4. gitlab webhook php exec 调用 shell 脚本。shell 脚本中调用 git pull 命令无法执行。

    情况如下: 我在ubuntu server 14.04 上面安装了gitlab,来托管项目代码.然后想通过gitlab的web hook 功能来做测试服务器代码自动化更新代码功能.现在遇到一个问题:就 ...

  5. [Android]Recovery调用外部Shell脚本,Shell脚本使用ui_print方法

    busybox_bin=/sbin/busybox # 获取PIPE get_outfd(){ | $busybox_bin grep -q 'pipe'; then else local all_p ...

  6. Shell脚本之一 Shell脚本简介

    一.什么是shell? 我们平时所说的 Shell 可以理解为 Linux 系统提供给用户的使用界面.Shell 为用户提供了输入命令和参数并可得到命令执行结果的环境.当一个用户登录 Linux 之后 ...

  7. 分享7个shell脚本实例--shell脚本练习必备

    概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 1.监测Nginx访问日志502情况,并做相应动作 ...

  8. shell脚本(2)-shell脚本语法

    一.如何抒写shell脚本 1.shell脚本的命名 名字要有意义,不要以a.b.c.1.2.3这种方式命令,建议以sh结尾,在30个字节内,例如:check_memory.sh  2.shell脚本 ...

  9. shell脚本介绍
 shell脚本结构和执行
date命令用法
 shell脚本中的变量

随机推荐

  1. 朝花夕拾《精通CSS》一、HTML & CSS 的基础

    一.背景 翻出我4年前看的<精通CSS>一书,可惜当初没有整理读书笔记的习惯,最近又很少写前端,遂很多东西.知识点遗忘了,恰且现在 css 也有些变化和进步,遂一起打包整理,输出成几篇 b ...

  2. Python 调用 ES、Solr、Phoenix

    #!/usr/bin/env python # -*- coding:utf-8 -*- # ************************************* # @Time : 2019/ ...

  3. Java题库——Chapter12 异常处理和文本IO

    异常处理 1)What is displayed on the console when running the following program? class Test { public stat ...

  4. Java题库——chapter7 多维数组

    1)Which of the following statements are correct? 1) _______ A)char[ ][ ] charArray = {{'a', 'b'}, {' ...

  5. SpringCloud的入门学习之概念理解、Hystrix断路器

    1.分布式系统面临的问题,复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败. 2.什么是服务雪崩? 答:多个微服务之间调用的时候,假设微服务A调用微服务B和微服务 ...

  6. MyBatis的结构和配置

    概述 MyBatis将用户从JDBC的访问中解放出来,用户只需要定义需要操作的SQL语句,无须关注底层的JDBC操作,就可以面向对象的方式进行持久层操作.底层数据库连接的获取.数据访问的实现.事务控制 ...

  7. layui省市区三级联动城市选择

    基于layui框架制作精美的省市区下拉框三级联动菜单选择, 支持三级联动城市选择,点击提交获取选中值代码. 示例图如下: 资源链接: https://pan.baidu.com/s/1s6l8iDBE ...

  8. 安装SQL数据库时遇到问题。需要更新以前的visual studio 2010实例

    安装SQL数据库时遇到问题.需要更新以前的visual studio 2010实例此计算机安装了需要service pack 1更新的visual 2010,必须安装此更新才能成功安装选择的SQL s ...

  9. spark利用yarn提交任务报:YARN application has exited unexpectedly with state UNDEFINED

    spark用yarn提交任务会报ERROR cluster.YarnClientSchedulerBackend: YARN application has exited unexpectedly w ...

  10. 四、排序算法总结二(归并排序)(C++版本)

    一.什么是归并排序? 归并排序是基于分而治之的思想建立起来的. 所谓的分而治之,也就是将一个数据规模为N的数据集,分解为两个规模大小差不多的数据集(n/2),然而分别处理这两个更小的问题,就相当于解决 ...