Shell 脚本的构成及规范
发布时间:2023-06-07 13:39:23 所属栏目:教程 来源:
导读:Shell 脚本有一些约定俗成的规范,大家都遵循这些规则,编写出来的脚本更能被大家接受,Shell 脚本其实不能称为一门编程语言,它更像是一个工具,用来杂糅不同的程序及命令供我们调用来完成自己的预期操作。
1.1
1.1
Shell 脚本有一些约定俗成的规范,大家都遵循这些规则,编写出来的脚本更能被大家接受,Shell 脚本其实不能称为一门编程语言,它更像是一个工具,用来杂糅不同的程序及命令供我们调用来完成自己的预期操作。 1.1 命名规范 Shell 脚本在命名方面没有严格的要求,但是我们命名需要遵循见名知意,即可通过 Shell 脚本的名称知道其功能; 文件名约定俗成以 .sh 结尾,方便识别其为 Shell 脚本文件; 文件统一命名风格,写 Shell 一般用小写字母加下划线,例如 install_MysqL.sh, 我们看到该名称就能知道其为一个安装 MysqL 的脚本文件。 1.2 Shell 脚本结构 Shell 脚本在其中的第一行需要有指明解释器,在上面 CLI Shell 中的那些解释器,都可以写,在以./install_MysqL.sh 的时候,此时就是利用脚本中第一行的解释器来运行脚本,其格式为 #!Shell解释器,例如#!/bin/bash, 但是这种方式存在一定的局限性,我们推荐使用 env 环境变量中的 bash,推荐使用这种方式#!/usr/bin/env bash。 1.3 编码统一 在编写 Shell 的时候我们尽可能使用 UTF-8 编码,可以支持中文及大多数符号,在其中我们注释使用英文,例如在不支持中文的服务器上,脚本更好的支持。 1.4 作者信息 在编写 Shell 脚本的时候,我们应该尽可能地指定 Shell 的描述信息,以及该脚本的作者,编写该脚本的日期及联系方式,以及脚本的版本,方便后期其他人阅读及联系。 2. Shell 的运行方式 运行脚本可以归纳为三种方式,注意一般在运行脚本的时候为脚本添加 x 可执行权限 2.1 显式指定解释器执行 [root@shell workspace]# lltotal -rw-r--r-- 1 root root 44 Sep 3 14:16 01-scripts.sh[root@shell workspace]# cat 01-scripts.sh #!/bin/env bash# Description: /mybin/myvim scripts# Auth: kaliarch# Email: kaliarch@163.com# Date: 2020-02-15 13:36# Version: 1.0echo this is my first script /[root@shell workspace]# bash 01-scripts.sh this is my first script 在当前 bash 环境下,当前终端登录的 Shell 为父 Shell,此种方式为在当前 Shell 下再启动一个子进程来运行 Shell 脚本。 Tips: 此方法直接在终端指定解释器来执行脚本,此时的解释器为终端指定的,不使用脚本内第一行指定的解释器执行,直接指定解释器,此时不需要为脚本添加可执行权限。 2.2 直接指定脚本文件名称 [root@shell workspace]# lltotal -rw-r--r-- 1 root root 44 Sep 3 14:16 01-scripts.sh[root@shell workspace]# . ./01-scripts.sh-bash: ./-scripts.sh: Permission denied[root@shell workspace]# chmod +x 01-scripts.sh [root@shell workspace]# lltotal -rwxr-xr-x root root Sep : -scripts.sh[root@shell workspace]# . ./01-scripts.sh this is my first script[root@shell workspace]# /workspace/01-scripts.sh this is my first script 利用直接在终端指定脚本文件名称方式执行,此种方式需要为脚本添加可执行权限,在当前 Shell 来执行,不启动子 Shell,利用此种方式执行脚本的解释器为脚本内的第一行指定的解释器,例如此例中为#!/bin/bash,利用. 命令来执行脚本,一般用在当前目录没有在 PATH 中,所以第二个./ 是用来表示当前目录的。 2.3 source 执行 [root@xuel-transfer workspace]# bash 01-scripts.shthis is my first script[root@xuel-transfer workspace]# ./01-scripts.shthis is my first script[root@xuel-transfer workspace]# source 01-scripts.shthis is my first script[root@xuel-transfer /]# pwd/ 利用此种方式也可执行脚本,此方式在当前上下文中执行脚本,不会生成新的子进程。脚本执行完毕,回到当前 Shell,脚本内如果有 cd 命令脚本退出后会影响当前的环境上下文,此种方式运行 Shell,脚本也可以没有可执行权限。 目前 Shell 的内容非常多,其作为用户和系统内核的桥梁,其功能强大不言而喻,我们需要将有限的精力放在热点知识上,好钢用在刀刃上,注意学习方法学会举一反三,这样在后期的 Shell 学习中能够更加地快速高效。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |