Shell编程规范与变量

1.Shell脚本概述

在一些复杂的 Linux 维护工作中,大量重复性的输入和交互操作不仅费时费力,而且容易出错,而编写一个恰到好处的 Shell 脚本程序,可以批量处理、自动化地完成一系列维护任务,大大减轻管理员的负担。

1.1 Shell 的作用

  1. Shell的作用---------命令解释器,“翻译官” 介于系统内核与用户之间,负责解释命令行
    在这里插入图片描述
  2. 用户的登录shell
    登录后默认使用的shell程序,一般为/bin/bash 不同的shell的内部指令,运行环境等会有所区别
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

1.2 执行脚本的三种方式

先简单写一个脚本,取名字first.sh

方法一:脚本文件路径(绝对路径和相对路径)

[root@localhost ~]# ./first.sh
成功

方法二:sh脚本文件路径

[root@localhost ~]# sh first.sh 
成功

方法三:soure 脚本文件路径

[root@localhost ~]# source first.sh 
成功

注意点:执行脚本之前,必须给脚本执行权限

1.3 重定向与管道操作

  1. 交互式硬件设备
    标准输入:从该设备接收用户输入的数据

    标准输出:通过设备向用户输出数据

    标准错误:通过该设备报告执行出错信息
    在这里插入图片描述

  2. 重定向操作

在这里插入图片描述
混合输出 &>> 将标准输出,标准错误的内容保存到同一个文件中

  1. 管道操作符号"|"

将左侧的命令输出结果,作为右侧命令的处理对象

 netstat -aunpt | grep 873   
tcp        0      0 20.0.0.28:873           0.0.0.0:*               LISTEN      10474/rsync

2. Shell变量的作用,类型

2.1 变量的作用

  1. 来存放系统和用户需要使用的特>定参数(值)

  2. 变量名:使用固定的名称。由系>统预设或用户定义

  3. 变量值:能够根据用户设置,系>统环境的变化而变化
    变量的类型

  4. 自定义变量:由用户自己定义>,修改和使用

  5. 特殊变量:环境变量,只读变>量,位置变量,预定义变量

2.2 自定义变量

  1. 定义一个新的变量:
    变量名以字母或下划线开头,区分大小写,建议全大写

    变量名=变量值

    查看变量的值

 echo $变量值
[root@localhost ~]# Products Python 
[root@ local host ~]# Version=2.7.13 
[root@localhost ~]# echo $Product 
Python 
  1. 赋值时使用引号
    双引号:允许通过$符号引用其他变量值

    单引号:禁止引用其他变量值,$视为普通字符

    反撇号:命令替换,提取命令执行后的输出结果

从键盘输入内容为变量赋值

read [-p "提示信息"]变量名
  1. 设置变量的作用范围
格式1: export变量名… 
格式2: export变置名=变置值...
[root@localhost  -]#  echo  "$Product  $Version"
Benet 6.0 
[root@localhost   ]  #  export  Product  Version   ##导出为全局变量
[root@localhost ~j# bash
[root@ local host ~]# echo "$Product $Version"   ###子程序应用全局变量
Benet 6.0  

  1. 整数变量的运算
expr 变量1 运算符 变量2 [运算符 变量3]...

常用的运算符
加法运算:+
减法运算:-
乘法运算:*
除法运算:/
求模(取余)运算:%

2.3 特殊的shell变量

环境变量
由系统提前创建,用来设置用户的工作环境
配置文件:/etc/profile 、~/.bash_profile

常见的环境环境
PWD,PATH
USER,SHELL,HOME

[root@localhost ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  1. 只读变量
    用于变量值不允许被修改的情况
[root@localhost -]# name=cloud 
[root@localhost -]# readonly name //设置为只读变量 
[root@localhost ~j# echo $name 
cloud 
[root@localhost  ]  # name=yun 
-bash: name: readonly variable //只读变量不可以被重新赋值 [root@localhost~]# 
[root@localhost -]# unset name //只读变量不可以被删除 
-bash: unset: name: cannot unset: readonly variable
  1. 位置变量
    表示为$n,n为1-9之间的数字
[root@localhost  ]# ./myprog.sh one two three four five
  1. 预定义变量
    $#:命令行中位置变量的个数
    $*:所有位置变量的内容
    $?:上一条命令执行后返回的状态,
    当返回状态值为o时 表示执行正常>,非o值表示执行异常或出错
    $0:当前执行的进程/程序名
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值