【shell】基础理论、脚本构成、脚本执行

简介: 文章目录前言一、定义二、规范

一、定义

将某条命令或许多条命令按照某种规则执行结束。

二、规范

2.1 调用解释器

#!/bin/bash
#调用bash解释器
#!/usr/bin/expect
#调用expect解释器

2.2 执行方式

  • 路径执行:需要有执行权限方可执行
  • 解释器执行:不需要权限也可执行

2.3 脚本错误

  • 命令错误:不会影响接下来的命令执行
  • 语法错误:会影响到接下来的命令执行
  • 逻辑错误:需手动排查故障(bash -x 脚本)

三、脚本构成

3.1 变量

3.1.1 内置变量

  • $PATH :可执行命令的默认路径
  • $UID :当前用户UID号
  • $HOSTNAME :当前用户主机名
  • $USER :当前用户名

3.1.2 预定义变量

  • $? :返回上次命令执行状态(0:成功;非0:失败)
  • $0 :代指当前脚本本身
  • $* :将脚本变量作为整体返回
  • $@ :将脚本变量作为个体返回
  • $# :脚本后变量的总个数

3.1.3 位置/环境/只读/自定义变量

  • 位置变量:命令后方对应位置所对应的变量
  • 环境变量:在所有bash环境中都能适用的变量
  • 只读变量:只能读取,无法更改的变量
  • 自定义变量:自行设定变量名的变量

3.2 变量赋值

  • 同样的变量,同样的值,通过不同的符号,变量获取的值是不同的
形式 作用
变量=`命令` 将命令执行的结果作为值赋予变量
变量=$(命令) 将命令执行的结果作为值赋予变量
变量2=“变量1” 可识别变量1的值,并将变量1的值赋予变量2
变量2=‘变量1’ 无法识别变量1的值,会将变量1本身字符作为值赋予变量2
变量2={变量1} 能够精确定位变量1的字符范围,防止出现逻辑错误
read -p “提示字符” 变量 将标准输入的值赋予变量

3.3 特殊符号

3.3.1 连接符

  • -a :连接符且
  • && :连接符且
  • -o :连接符或
  • || :连接符或

3.3.2 重定向

  • > :重定向输入
  • < :重定向输出
  • >> :重定向追加输入

3.3.3 管道符

  • | :管道符,将左边命令的结果作为右边命令的参数

3.4 数学运算

  • [ ] :可执行简单的数学运算
  • (( )) :可执行简单的数学运算
  • expr :可执行简单的数学运算
  • let :可执行简单的数学运算
  • 简单的数学运算:加 + ;减 - ;乘 \* ;除 / ;求余 % ;大小比较

四、思维导图

相关文章
|
23天前
|
分布式计算 Hadoop Shell
使用shell脚本实现自动SSH互信功能
使用shell脚本实现自动SSH互信功能
26 1
|
2天前
|
Shell Linux
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
|
2天前
|
Shell Linux
linux shell脚本字符串 字段分隔符 存入数组 根据下标取值
linux shell脚本字符串 字段分隔符 存入数组 根据下标取值
|
2天前
|
Shell Linux
linux shell 脚本中变量截取
linux shell 脚本中变量截取
|
2天前
|
机器学习/深度学习 Shell Linux
linux shell脚本判断文件或文件夹是否存在循环操作
linux shell脚本判断文件或文件夹是否存在循环操作
|
2天前
|
Shell Linux
shell循环读文件 Linux脚本读文件
shell循环读文件 Linux脚本读文件
|
7天前
|
存储 算法 安全
shell 脚本之 函数与数组
shell 脚本之 函数与数组
|
7天前
|
机器学习/深度学习 Shell Perl
shell 脚本循环语句
shell 脚本循环语句
|
7天前
|
机器学习/深度学习 Ubuntu Shell
shell 脚本 条件语句
shell 脚本 条件语句
|
7天前
|
监控 搜索推荐 Shell