shell脚本编程

来源:互联网 发布:校园网络组建方案设计 编辑:程序博客网 时间:2024/06/07 16:52

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文件中列出的用户主目录 IFS Internal Field Separator,默认为空格,tab及换行符 PATH shell搜索路径 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 $? 输出上条命令的结果

原创粉丝点击