加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Shell 脚本的构成及规范

发布时间:2023-06-07 13:39:23 所属栏目:教程 来源:
导读:Shell 脚本有一些约定俗成的规范,大家都遵循这些规则,编写出来的脚本更能被大家接受,Shell 脚本其实不能称为一门编程语言,它更像是一个工具,用来杂糅不同的程序及命令供我们调用来完成自己的预期操作。

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 学习中能够更加地快速高效。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章