博客
关于我
shell脚本——shell编程规范与变量
阅读量:694 次
发布时间:2019-03-17

本文共 1476 字,大约阅读时间需要 4 分钟。

Shell脚本——Shell编程规范与变量

一、Shell脚本概述

1. Shell的概念

Shell脚本(Shell Script)是一种用于执行一系列命令的文本文件,将这些命令按顺序存储,便于批量操作或定时执行,主要应用于系统管理员的日常管理任务。

2. Shell的作用——“命令翻译器”

Shell作为连接系统内核和用户的桥梁,负责将用户输入的命令解释并转化为系统内核能够执行的操作,最后将执行结果反馈给用户。

3. Shell脚本的应用场景
  • 重复性操作:适合处理大量相同或相似的任务。
  • 交互性任务:涉及用户交互的应用。
  • 批量事务处理:处理需要大量文件或数据的任务。
  • 服务运行状态监控:定期检查系统运行状态。
  • 定时任务执行:通过crondisk定时启动脚本任务。

二、Shell编程规范

1. 用户登录Shell

默认登录Shell程序为/bin/bash,各类shell的内部指令和环境差异较大,具体特性需结合使用的shell具体情况。

2. Shell脚本的组成
  • 脚本宣言:使用#!/bin/bash等注明解释器。
  • 注释信息:以#开头的行为注释,不会被执行。
  • 可执行语句:如echo命令用作信息输出。
3. Shell脚本的执行
  • 通过命令执行:
    • 绝对路径:/root/first.sh
    • 相对路径:./first.sh
  • 通过指定Shell解释脚本:
    • 使用特定Shell:sh first.sh
    • 在当前目录中运行:. first.sh或source first.sh
  • 三、管道

    1. 管道的使用场景

    将命令行的输出作为下一个命令的输入,实现命令组合。

    2. 常见管道格式
    命令1 | 命令2 | ... | 命令n

    四、重定向

    1. 重定向的文件类型
    • 标准输入(stdin):/dev/stdin
    • 标准输出(stdout):/dev/stdout
    • 标准错误输出(stderr):/dev/stderr
    2. 重定向操作符
    • >:将输出覆盖到指定文件。
    • >>:将输出追加到指定文件。
    • 2>:将错误输出覆盖到指定文件。
    • 2>>:将错误输出追加到指定文件。
    • >&:将标准输出与错误输出结合。
    • 2>&1:将错误输出与标准输出结合。

    五、Shell脚本变量

    1. 变量的作用

    变量用于存储系统或用户特定的参数,变量名由字母或下划线构成,区分大小写。

    2. 变量类型
  • 自定义变量:用户定义的变量,可随意修改。
  • 特殊变量:
    • 环境变量:由系统维护,设置工作环境。
    • 只读变量:用户不可修改。
    • 位置变量:通过命令行传递参数。
    • 预定义变量:bash内置变量,不能直接修改。
  • 六、Shell脚本变量——自定义变量

    1. 定义变量
    变量名=变量值
    • 变量命名规则:以字母或下划线开头,区分大小写,建议使用全大写。
    • 示例:

    my_var="Hello, World!"

    ##### 2. 查看变量值使用`echo`命令查询:```bashecho $my_var
    3. 赋值技巧
    • 双引号:支持变量引用,$保留为字面字符。
    • 单引号:$视为普通字符,不进行变量替换。
    • 反撇号:执行命令并提取输出结果。
    4. 从键盘读取输入
    • 方法一(带提示信息):
      read -p "请输入内容:" my_input
    • 方法二(无提示信息):
      read my_input
    5. 占位符

    使用占位符进行赋值,如$1代表第一条命令线参数。

    七、Shell脚本变量——特殊变量

    • 环境变量:如PATH、HOME,由系统维护。
    • 位置变量:通过传递参数访问如$1、$2。
    • 预定义变量:如UID、GID,不能修改。

    转载地址:http://riphz.baihongyu.com/

    你可能感兴趣的文章
    Python/Kivy:从一个类调用函数到另一个类并在 Python 中显示小部件
    查看>>
    Python/Kivy:我可以在双击标签时调用函数吗
    查看>>
    python内置函数5-frozenset()
    查看>>
    Python/Plotly:如何使用要显示的信息自定义悬停模板?
    查看>>
    Python/Selenium - 无法单击 www.instagram.com 上的“接受 cookie“按钮
    查看>>
    Python内置函数(35)——next
    查看>>
    python写入mysql
    查看>>
    python写入csv老是乱码或者各种不好
    查看>>
    Python内置函数
    查看>>
    Python2 安装MySQLdb库
    查看>>
    Python2 已终结,入手Python 3,你需要这30个技巧
    查看>>
    python写下拉列表在excel,无法使用python获取Excel下拉列表(组合框)值
    查看>>
    python2.7安装
    查看>>
    Python2.7安装ncmbot时提示:Microsoft Visual C++9.0 is required
    查看>>
    PYTHON2.Git.1
    查看>>
    python20181211
    查看>>
    Python内存管理机制
    查看>>
    Python2中range 和xrange的区别??
    查看>>
    python2和3的区别
    查看>>
    python2和python3的pip版本升级
    查看>>