shell脚本编程

shell脚本语言是解释性语言,C语言是编译型语言。shell脚本是shell命令的有序集合。

shell编程基本步骤

  1. 建立shell文件;包含任意多行系统命令或shell命令的文本文件
  2. 赋予shell文件执行权限,用chmod命令修改执行权限
  3. 执行shell文件;直接在命令行上调用shell程序(在PATH路径中没有当前文件的话 直接用 ./执行)

shell变量

shell不支持数据类型,将任何赋值给变量的值都解释为字符串,因此无需声明,直接赋值

count=1 //变量直接赋值,等号两边不加空格
echo count //变量调用时要带 $ 符号指示变量
echo $count 

变量种类

  • 用户自定义变量

    • 删除变量 unset命令
  • 位置变量即命令行参数

    • $0:与键入的命令行一样,包含脚本文件名
    • $1,$2,······$9:分别包含第一个到第九个命令行参数
    • $# :包含命令行参数的个数
    • $@ :包含所有命令行参数
    • $? :包含前一个命令的退出状态
    • $ *: 包含所有命令行参数
    • $$ :包含正在执行进程的ID号
  • 预定义变量
  • 环境变量
    • export ;env查看环境变量
常用环境变量说明
HOME/etc/passwd文件中列出的用户主目录
IFSInternal Field Separator,默认为空格,tab及换行符
PATHshell搜索路径
PS1、PS2默认提示符($)及换行提示符(>)
TERM中断类型,常用的有vt100,ansi,vt200,xterm等

功能语句

  • 说明性语句:以#号开始,按行计
  • 功能性语句:任意的shell命令、用户程序或其它shell程序
  • 结构性语句:条件测试语句、分支语句、循环语句、循环控制语句
常用功能性语句
  • read 从标准输入读入一行,并赋值给后面的变量变量数和输入之间的匹配
  • expr 整数运算 A=`expr 3 + 5` 命令结果赋值给变量时要进行转换,且变量赋值不应有空格,运算表达式应有空格
  • test 测试对象:
    • 字符串:常用命令参数
表达式含义
s1 = s2测试两个字符串的内容是否完全一样
s1 != s2测试两个字符串的内容是否有差异
-z s1测试s1字符串的长度是否为0
-n s1测试s1字符串的长度是否不为0
    • 整数:常用命令参数
表达式含义
a -eq b测试a与b是否相等
a -ne b测试与b是否不相等
a -gt b测试a是否大于b
a -ge b测试a是否大于等于b
a -lt b测试a是否小于b
a -le b测试a是否小于等于b
    • 文件属性:常用命令参数
表达式含义
-d name测试name是否为一个目录
-e name测试一个文件是否存在
-f name测试name文件是否为普通文件
-L name测试name文件是否为符号链结
-r name测试name文件是否存在且为可读
-w name测试name文件是否是否存在且为可写
-x name测试name文件是否存在且为可执行
-s name测试name文件是否存在且其长度不为0
f1 -nt f2测试文件f1是否比文件f2更新
f1 -ot f2测试文件f1是否比文件f2更旧

echo $? 输出上条命令的结果

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值