12-. Shell Scripts Programming Language
12-. Shell Scripts 程序语言
Shell script 拥有更强大的功能,那就是他可以进行类似程序 (program) 的撰写,并且不需要经过编译 (compile) 就能够执行, 很方便。
加上我们可透过 shell script 来简化我们日常的工作管理,整个 Linux 环境中,一些服务 (services) 的启动都是透过 shell script 的。
1. What is Shell Scripts?
程序化脚本 Shell Script。
shell script 是利用 shell 的功能所写的一个『程序 (program)』,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正规表示法、管线命令与数据流重导向等功能,以达到我们所想要的处理目的。
感觉上其实更像一个无需编译的,完成简单功能的编程语言
shell script 用在系统管理上面是很好的一项工具,但是用在处理大量数值运算上, 就不够好了,因为 Shell scripts 的速度较慢,且使用的 CPU 资源较多,造成主机资源的分配不良。
2. Shell Scripts 文件
*.sh 文件。
在 Shell script 的文件中,指令的执行是从上而下、从左而右的分析与执行
shell script 的执行,至少需要有 r 的权限,若需要直接指令下达,则需要拥有 r 与 x 的权限。
2.1. 基本框架
可以在命令行一行一行执行。也可以写成一个文件。Windows 同样可以。(Power Shell)
良好的程序撰写习惯中,第一行要宣告 shell (#!/bin/bash) ,第二行以后则宣告程序用途、版本、作者等
2.2. Shell 语法
对谈式脚本可用 read 指令达成;
要建立每次执行脚本都有不同结果的数据,可使用 date 指令利用日期达成;
script 的执行若以 source 来执行时,代表在父程序的 bash 内执行之意!
若需要进行判断式,可使用 test 或中括号 ( [] ) 来处理;
在 script 内,$0, $1, $2..., $@ 是有特殊意义的!
条件判断式可使用 if...then 来判断,若是固定变量内容的情况下,可使用 case $var in ... esac 来处理
循环主要分为不定循环 (while, until) 以及固定循环 (for) ,配合 do, done 来达成所需任务!
2.3. Debug
sh -x script.sh 来进行程序的 debug
2.4. Interesting
发现 Windows 的 Powershell 能够执行单行的 Shell 命令。逐渐发现自己能够简单地操控命令行了!神奇!
Last updated