初识shell----shell编程规范及变量

一、shell脚本

1、shell脚本概述

1>shell脚本的概念

  • 将要执行的命令按顺序保存到一个文本文件
  • 给文件一个可执行的权限
  • 可以结合各种shell控制语句完成更复杂的操作

2>shell脚本应用场景

  • 重复性的工作
  • 交互性任务
  • 批量事务处理
  • 服务运行状态监控
  • 定时任务执行

2、shell编程的作用

  • 充当一个翻译官–命令解释器
  • 介于系统内核与用户之间,负责解释命令行

3、shell编程规范

  • 编写脚本代码:
    使用vim 文本编辑器
    每一条Linux命令,按顺序依次编写
例如:
[root@localhost opt]# vim test01.sh   ##固定格式 .sh

#!/bin/bash
cd /boot/
pwd
ls -lh vml*

  • 赋予可执行的权限
[root@localhost opt]# chmod +x test01.sh 
[root@localhost opt]# ll
总用量 8
-rwxr-xr-x. 1 root root 89 7  16 00:43 first.sh
drwxr-xr-x. 2 root root  6 10 31 2018 rh
-rwxr-xr-x. 1 root root 38 7  16 02:53 test01.sh
  • 执行脚本文件方法
    方法一:[root@localhost ~]# ./test01.sh
    方法二:[root@localhost ~]# sh test01.sh
    方法三:[root@localhost ~]# source test01.sh 或者 . test01.sh
    注:方法一必须要有 x 执行的权限,方法二和三,执行后会改变当前的bash环境
  • 完善脚本构成:
    脚本声明
    注释信息
    可执行语句
[root@localhost opt]# vim test01.sh 

#!/bin/bash
#cd /etc/
#pwd
#cat passwd
echo "前往boot目录"当前
cd /boot/
echo "当前的目录"
pwd
echo "查看passwd这个文件"
ls -lh vml*

4、重定向与管道

1> 交互式硬件设备

  • 标准输入:从该设备接收用户输入的数据
  • 标准输出:通过该设备向用户输出数据
  • 标准错误:通过该设备报告执行出错的信息
类型设备文件文件描述编号默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stdout1显示器
标准错误输出/dev/stderr2显示器

2> 重定向操作

类型操作符用途
重定向输入<从指定的文件读取数据,而不是从键盘输入
重定向输出>将输出的结果保存到指定文件(覆盖原有内容)
>>将输出结果追加到指定文件尾部
标准错误输出2>将错误信息保存到指定文件(覆盖原有内容)
2>>将错误信息追加到指定文件
混合输出&>将标准输出,标准错误内容保存到同一个文件中
[root@localhost opt]# cat abc.txt 2> error.txt
[root@localhost opt]# vi error.txt 
[root@localhost opt]# cat abc.txt 
cat: abc.txt: 没有那个文件或目录
[root@localhost opt]# cat abc.txt > error.txt
cat: abc.txt: 没有那个文件或目录
[root@localhost opt]# ls
error.txt  first.sh  rh  test01.sh
[root@localhost opt]# vim error.txt 

3> 管道操作符号“ | ”

  • 将左侧命令的输出结果,作为右侧命令的处理对象
示例:grep "bash$" /etc/passwd | awk -F: '{print $1,$7}'

二、shell脚本变量

1>变量的作用

  • 用来存放系统和用户需要使用的特定的参数(值)
    变量名:使用固定的名称,由系统预设或用户定义
    变量值:能够根据用户设置,系统环境的变化而变化

2>变量的类型

自定义变量:由用户自己定义,修改和使用
特殊变量:环境变量,只读变量,位置变量,预定义变量

1、自定义变量

  • 定义一个新的变量:
    变量的名以字母或下划线开头,区分大小写,建议大写
    变量名=变量值
  • 查看变量的值:
    echo $变量名
  • 赋值时:
    双引号:允许通过 符 号 引 用 其 他 变 量 值 单 引 号 : 禁 止 引 用 其 他 变 量 值 , 符号引用其他变量值 单引号:禁止引用其他变量值, 视为普通字符
    反撇号:· 命令替换,提取命令执行后的结果
  • 从键盘中输入变量赋值
    read [ -p ”提示信息” ] 变量名
    在这里插入图片描述
  • 设置变量作用范围
    格式1:export 变量名 (设置全局变量)
    格式2:export 变量名=变量值
  • 整数变量的运算
    常用运算符:
    +加法 -减法 * 乘法 / 除法 % 取余数
    例如:expr $x + $y 将x与y变量的值相加

2、特殊变量

  • 环境变量
    由系统提前创建,用来设置用户的工作环境
    配置文件:/etc/profile ~/.bash_profile
  • 常见环境变量
    PWD PATH
    USER SHELL HOME
  • 只读变量
    readonly tom1 将tom1变量设为只读变量
    只读变量不可以被删除和重新定义
    删除变量: unset tom1
  • 位置变量
表示为 $n ,n为1-9之间的数字
示例表示为:./myprog.sh $1 $2 .....
  • 预定义变量
$#  命令行中位置变量的个数
$*   所有位置变量的内容
$?  上一条命令执行后返回的状态,当返回0时表示正常执行,非0值表示异常
$0  当前执行的进程/进程名
[root@localhost opt]# vim test2.sh

#!/bin/bash
bak=beifen-`date +%s`.tgz
tar zcf $bak $* &> /dev/null
echo "已执行$0脚本"
echo "共完成$#个对象的备份"
echo "具体内容包括:$*"
[root@localhost opt]# chmod +x test2.sh 
[root@localhost opt]# ./test2.sh /etc/passwd /etc/shadow
已执行./test2.sh脚本
共完成2个对象的备份
具体内容包括:/etc/passwd /etc/shadow
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值