zoukankan      html  css  js  c++  java
  • LinuxShell脚本——认识Shell脚本

    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系统命令一样,不用指定路径直接运行了。

    赋予执行权限:

    1 [root@localhost sh]# chmod 755 shell.sh

    使用绝对路径执行:

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

    使用相对路径执行:

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

    通过bash命令调用运行脚本

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

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

    使用bash命令执行:

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

    使用source命令执行

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

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

    使用source命令执行:

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

    编写一个脚本并执行

    编写脚本

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

    1 [root@localhost ~]# vim test.sh

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

    1 #!/bin/bash
    2 echo "Hello World"

    执行脚本

    使用sh命令执行脚本:

    1 [root@localhost ~]# sh test.sh
    2 Hello Word
    3 [root@localhost ~]# 
  • 相关阅读:
    VUE报错: Duplicate keys detected: '0'. This may cause an update error.
    VUE中 resource如何引入和GET POST JSONP 如何使用
    VUE中 axios GET和POST 如何使用
    微信小程序封装组件,子父组件通信 详细解析
    CSS3文字超出块元素显示省略号
    微信小程序处理后端返回图片二进制流,渲染页面
    记录平台向用户发送消息功能界面(HTML+CSS)
    原生JavaScript写出日历功能 无引用Jq
    mongoTemplate Aggregation first
    封装返回前端的通用格式
  • 原文地址:https://www.cnblogs.com/shamao/p/11209452.html
Copyright © 2011-2022 走看看