shell编程的基础操作

shell编程

bash编程

  • 创建shell脚本文件
  • 使用vim(或其他文本编辑器)创建脚本文件(一般以.sh结尾)
  • 在shell脚本中可以运行所有linux命令
  • shebang
  • 在bash的脚本中开头第一行要写shebang
  • 指定以bash运行该文件
  • #! /bin/bash
  • 给shell脚本添加运行权限
  • chmod +x shell脚本文件名
  • 运行shell脚本
  • 输入shell脚本的文件路径
  • 调试模式
  • bash -x shell脚本文件名
  • 调试模式下会显示每条执行的命令
  • 环境路径变量——$PATH
  • 显示当前系统的$PATH所处的文件夹:echo $PATH
  • 将shell脚本文件复制到环境变量文件夹中就可以直接输入文件名运行脚本(不推荐随意更改环境变量文件夹)
  • 变量
  • 在Bash中,所有的变量都是字符串
  • 变量名=变量值
  • 不可以在等号两边增加空格,否则变量名会被孤立,导致系统判断为linux命令
  • echo
  • 用于输出变量
  • echo $变量名
  • -e 参数解析特殊字符
  • 单引号与双引号
  • 单双引号的规则与php大致相同
  • 反引号
  • 使shell脚本执行反引号之中的内容
  • read
  • read 变量名 可以等待终端输入值赋值给变量
  • 如同c语言的scanf
  • read命令可以一次性给多个变量赋值,变量名之间用空格隔开
  • read的-p参数可以在用户输入前输出提示信息
  • read的-n参数可以限制用户输入的值的长度
  • read的-t参数可以限制用户的输入时间
  • read的-s参数可以在读取输入时隐藏用户的输入内容
  • read -p '请输入:' -n 长度 -t 时间 -s 变量名
  • 数学运算
  • let命令(linux中的命令)
  • bash无法自行进行数学运算,需要使用let命令
  • 例:let 'a=5' let 'b=2' ley 'c=a+b'
  • 此时的c为7
  • 可以使用的运算符:
    • 加法 +
    • 减法 -
    • 乘法 *
    • 除法 /
    • 幂(乘方) **
    • 余(整数除法的余数) %
  • bc命令
  • 用于进行小数运算
  • 使用方法:菜鸟教程
  • 环境变量
  • env输出所有的环境变量
  • HOME环境变量——当前用户的家目录
  • SHELL——默认的环境变量
  • export命令
  • 设置环境变量
  • export 环境变量名=值
  • 参数变量
  • 脚本文件路径 参数1 参数2 参数3
  • 变量
    • $#——参数的数目
    • $0——被运行的脚本的名称
    • $N——第N个参数
  • shift命令用来挪移参数,以便依次处理
  • 数组
  • 变量名=['变量值' '变量值' '变量值' ...]
  • 使用方法与一般的编程语言相同
  • * 指代所有数组元素
  • echo array[*]输出数组中的所有元素
  • shell的条件语句

  • if
  • 格式:
  • if [ 条件测试 ]; then 执行代码 fi
  • 注意:条件和 [ ] 之间必须用空格隔开,要以 fi 结尾
  • shell中的等于
  • 使用一个 = (也可以使用==)
  • else
  • 用法与一般的编程语言大致相同
  • elif
  • 等同于一般编程语言中的else if
  • 条件测试
  • 字符串测试
  • = 判断是否相等
  • != 判断是否不等
  • -z 判断是否为空
  • -n 判断是否不为空
  • 数字测试
  • -eq 判断是否相等
  • -ne 判断是否不等
  • -lt 判断是否小于
  • -le 判断是否小于或等于
  • -gt 判断是否大于
  • -ge 判断是否大于或等于
  • 文件测试
  • -e 判断文件是否存在
  • -d 判断文件是否是一个目录
  • -f 判断文件是否是一个文件
  • -L 判断文件是否是一个符号链接文件
  • -r 判断文件是否可读
  • -w 判断文件是否科协
  • -x 判断文件是否可以执行
  • -nt 判断前一个文件是否比后一个文件更新
  • -ot 判断前一个文件是否比后一个文件更旧
  • 多个条件之间的连用
  • &&||
  • [ 条件字段 ] && [ 条件字段 ]
  • [ 条件字段 ] || [ 条件字段 ]
  • 与一般的编程语言用法相同
  • !
  • 反转字段条件
  • [ ! 条件字段 ]
  • case
  • 类似一般编程语言中的switch语句
  • 在这里插入图片描述
  • 注意:要以esac结尾
  • 可以在case语句中的条件之间使用或的判断
  • 使用 | 分隔
  • 循环语句

  • while循环
  • while [ 条件测试 ] do 执行代码 done
  • 注意do于条件语句同行时,条件语句后加 ;
  • until循环
  • 如果条件为假时一直循环,直到满足条件结束
  • for循环
  • for 变量名 in 变量组 do 执行代码 done
  • 变量组可以于Linux命令相搭配
  • 例如:for file in 'ls' do echo $file done
  • 会输出所有遍历出的文件
  • seq
  • for 变量名 in ’seq 起始值 跨度(可选) 结束值' do 执行代码 done
  • shell的函数

  • 定义方式
  • function 函数名 { 函数体 }
  • 函数名() { 函数体 }
  • 返回值
  • Shell的函数可以返回一个状态
  • Shell函数要返回状态,也用return这个关键字
  • 返回0表示顺利,非0值表示有错误

在这里插入图片描述

  • 向shell函数传参的方式,并获得返回值的方法
  • 变量 = $(函数名 参数)
  • 注意:shell的函数名后的 () 不可以加任何参数。
  • 变量作用范围
  • 默认为全局
  • 定义局部变量,需要使用local关键字
  • command
  • 可以通过对函数使用command实现对命令的重载
  • 命令名 () { command 重载的命令 }
  • 注意:如果没有添加command关键字会陷入死循环
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值