自动化运维

shell:命令解释器

shell位于操作系统和应用程序之间,解释对应命令至对应位置

分类:
  • 图形化界面:桌面
  • 命令行
编写与执行

#! /bin/bash

/bin/bash filename.sh

# 不需要有可执行权限,建议文件路径写完整
bash /bin/bash script_name 或 /bin/bash /root/script_name
# 脚本需要有可执行权限
/bin/bash script_name 或 ./script_name
# 当前环境下执行
source script_name 或 . script_name
注释

除第一行外,其他使用#

多行注释:

:<<!
多行注释
!
# !可以替换为@?abc等
变量
  • 普通变量:
    • a = 值 # 值为整体,无特殊符号
    • a = '值' # 看到什么输出什么,不解析值范围可解析内容
    • a = "值" # 如果值范围有可解析内容,优先执行
  • 命令变量
    • a = `命令`
      • a = $(命令) # 先获取命令值
  • 全局变量
    • env 显示全局变量
    • a = 值 # 设置普通变量为全局变量 export a
    • export a=值
  • 查看和取消
    • $变量名
    • "$变量名"
    • ${变量名}
    • "${变量名}"
    • # 取消 unset 变量名
  • 内置变量
    • $0 获取当前执行shell文件名称
    • $n (1…9) 获取命令行参数
    • $# 获取命令行中参数的总个数
    • $? 获取上一个指令的返回值(0为成功,非0为失败)
字符串截取

${变量名:起始位置:截取长度}

file = 112lkjlj234234

${file:0:5} 从第一个字符开始,截取5个字符(0可以省略)

${file:0-6:3} 从倒数第6个字符开始,截取之后的3个字符

获取默认值

${变量名:-默认值} 如果变量有值,则取变量值,没有则取默认值

${变量名:+默认值} 无论变量是否有值,强制使用默认值

测试语句

条件成立,返回0,不成立,返回1

  • test 条件表达式
  • [ 条件表达式 ]
文件表达式
  • -f 判断后边输入的是否是一个文件

    [ -f file.sh ]

  • -d 判断输入是否是一个目录

    [ -d Desktop ]

  • -x 判断输入是否有执行权限

    [ -x file.sh ]

数值操作符

-eq等于 -gt大于 -lt小于 -ne不等于

字符串比较

== !=

计算表达式
  • $(( 计算表达式 )) 只能用+-*/和()运算符(包含调用变量),并且只能用于整数运算
  • let 计算表达式
重定向符号

> 覆盖方式写入

>> 追加方式写入

后台展示符号

& 追加此符号可使程序后台运行

fg 调出后台程序(T挂起状态)

全部信息符号 2>&
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值