shell script基础

shell script是利用shell的功能所写的一个“程序”,这个程序使用纯文本,将一些shell的语法和命令(含外部命令)写在里面,搭配正则表达式,管道命令与数据流重定向等功能,达到我们所需要的处理目的。

shell script的用途

  • 自动化管理的重要依据:管理主机的任务有查询登录文件、追踪流量、监控用户使用主机状态、主机各项硬件设备状态、主机软件更新查询等
  • 追踪和管理系统的重要工作
  • 简单入侵检测功能
  • 连续命令单一化
  • 简易的数据处理
  • 跨平台支持与学习历程较短

shell scrpit的注意事项

  1. 命令从上而下,从左至右分析和执行
  2. 命令、参数间的多个空白会被忽略
  3. 空白行也会被忽略
  4. 如果读取到一个Enter符号,就尝试执行该行命令
  5. 如果一行代码太多,可以用[enter]来进行扩展
  6. “#”作为批注

shell script如何进行执行

  • 直接命令执行
    • 绝对路径:/path/to/your/shell.sh
    • 相对路径: ./shell.sh
    • 将shell.sh存放在PATH指定的目录
  • 以bash进程来执行:bash shell.sh sh shell.sh

不同执行方法的区别

  • 利用直接执行的方式来执行script:该script会使用一个新的bash环境执行的脚本内容,中途产生的变量不会回传到父进程中
  • 利用source执行脚本,会在父进程中进行

shell script编程基础

shell script既然被称为一门“编程语言”,那么就相应的具有以下三个要素:

  • 基本表达式形式
  • 组合的方法
  • 抽象的方法

表达式

除了调用bc进行数值计算,我们还可以直接在bash中进行运算
var=$((运算内容)) 或 declare -i total=$number1*$number2 #+ - * / %

命名和环境

一般而言,运算结果都需要进行储存方便再次调用,所以就引入了变量。

var=value # 定义变量
unset value # 删除变量
echo $var # 显示变量
declare [-aixr] var #声明变量类型 -a:数组,-i:整形,-x:效果同于export,-r:变量设置为readonly,变量定义后默认为字符型

#通过交互获取用户输入的变量
read -p "提示信息" 变量名
#显示信息
echo -e "输出信息 $变量名"

变量分为环境变量和自定义变量,环境变量作用于全局bash进程,而自定义变量作用于当前bash进程。我们定义的变量都是自定义变量,可以使用export var定义为环境变量

复合过程

在其他编程语言中都有一种称为函数的抽象技术,shell script同样拥有。

#定义
function fname() {
}
# 例子
function printit(){
    echo -n "This is a simple test "
}
printit

然而仅仅有函数,知道如何定义变量还是不够,我们可能还需要对变量进行判断,需要重复进行运算,所以我们需要if条件判断,需要while和for的循环语句

条件判断语句

#!/bin/bash
if [判断1]; then
    执行内容
##多重判断
elif [判断2]; then
    执行内容
else
    执行内容
#结束 
fi

循环(loop)

# while do... done循环
while [condition]
do #循环开始
    程序段落
done #循环结束
#until do ...done循环
until [condition]
do 
    程序段落
done
# for...do...done(固定循环)
for var in cond1 cond2 cond3...
do
    执行语句
done
#或类似于C语言
for ((i=1;i<=$num;i=i+1))
do
    echo $i
done

shell script的追踪与调试

sh [-nvx] scripts.sh
-n : 不执行scripts,仅查询语言的问题
-v : 在执行scripts之前,先将scripts内容输出到屏幕上
-x : 将使用到的scripts输出到屏幕上

以上就是shell scripts编程的语法部分,仅供备忘。

你可能感兴趣的:(shell script基础)