sunren 发表于 2018-8-22 11:36:35

DAY11 Shell脚本基础(Enginner05-1)

一、简介
  它是一个可执行文件。提前设计可执行语句,用来完成特定任务
1.1 常见的脚本类型
  Bash Shell
  Python/Perl/Ruby
  JSP/PHP/ASP/CGI
  Javascript
1.2 Shell语言最大的优势
  能够完全兼容linux系统
1.3 规范Shell脚本的组成
  #!环境声明--声明使用哪个解释器 /bin/bash
  #注释文本 十行以上的脚本必须有注释
  执行代码
  ......
二、编写脚本
2.1 创建过程
2.1.1明确任务需求
  -按照自然语言拆分小步骤
  -按顺序整理好
2.1.2编写代码文件
  -每一个步骤怎么实现
  -转换成命令行保存到脚本文件
2.1.3 测试并完善
  -运行脚本,并根据结果排除错误
  -代码优化,用户友好处理
2.2 脚本练习
  -输出hello world
  -添加yum源
  -添加用户test05
  -输入一个IP地址,判断是否能ping通,输出相应提示信息
三、高级重定向输出
  1> 只接收前面命令结果的正确输出
  2> 只接收前面命令结果的错误输出
  &> 接收前面命令结果的正确的输出和错误的输出
  /dev/null 黑洞设备
四、变量
4.1 由来
  为了增加脚本的适用环境的能力,增加脚本的灵活度
4.2 定义
  以不变的名称储存变化的值
4.3 格式
  变量名=变化的值
4.4 注意事项
  -若指定的变量名存在,相当于为该变量重新赋值
  -等号两边不能有空格
  -变量名只能有数字/字母/下划线组成
  -变量名不能以数字开头,不要使用关键字和特殊字符
4.5 查看方式
  echo 变量名
  echo {变量名}:当变量和常量在一起输出的时候,要用{}把变量括起来
4.6 引用方式
  $变量名
  ${变量名}
4.7 变量分类
4.7.1 环境变量
  变量名一般为大写,用来设置用户/系统环境
  $USER:当前登陆的用户
  $PWD:当前工作目录
  $PATH:提供命令程序的搜寻路径
4.7.2 位置变量
  bash内置的,用来存储脚本执行时的提供的命令行参数
  用$n表示,n为序号,如1,2,3,4,。。。
  -位置变量在双数的时候必须用${12}的方式引用
4.7.3 预定义变量
  bash内置的,可以直接调用的特殊值,不可直接为这些变量赋值
  $#:已加载的位置变量的个数
  $*:所有位置变量的值
  $?:程序退出时的状态值,0表示正常,其他值为异常
  $0:当前所在的进程或脚本名
  $$:当前运行进程的PID号
4.7.4 自定义变量
  用户自定义的变量
五、Shell常用命令
5.1 read -p ‘Input username:' user
  按行读取键盘的输入,把输入赋值给user,-p是打印提示信息
5.2 expr 2 * 3
  计算表达式的值,表达式为2*3,值为6
5.3 $(command)
  在一串指令当中, $(command)内的指令会先被执行, 执行完的结果再回传到外部指令来处理
  $(date +%F):当前日期
5.4 command
  与$(command)的效果相同
5.5 shift
  shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)。不带参数的shift相当于shift 1

页: [1]
查看完整版本: DAY11 Shell脚本基础(Enginner05-1)