Shell编程规范与变量----------带你如何去更好的玩shell

一、Shell脚本的概述

1.1 Shell的作用

1.1.1 Shell脚本的概念

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

1.1.2 Shell脚本应用场景

	● 重复性操作
	● 交互性任务
	● 批量事务处理
	● 服务运行状态监控
	● 定时任务执行
	● ......

1.1.3 Shell的作用

	■Shell的作用——命令解释器,翻译官
	  ●介于系统内核与用户之间,负责解释命令行

	■用户的登录Shell
	  ●登录后默认使用的Shell程序,一般为/bin/bash
	  ●不同的Shell的内部指令、运行环境等会有所区别

1.2 Shell编程规范

1.2.1 编写第一个Shell脚本

	■编写脚本代码
	  ●使用vim文本编辑器
	  ●每行一条Linux命令,按执行顺序依次编写
	
	■赋予可执行权限
	   ●使脚本具有可执行属性
	     chmod +x first.sh
	■执行脚本文件
	  ●脚本文件路径(绝对路径与相对路径)
	    ./first.sh
	  ●sh 脚本文件路径
	    sh first.sh
	  ●source 脚本文件路径
	    source first.sh
	■更完善的脚本构成
	  ●脚本声明
	  ●注释信息
	  ●可执行语句
[root@localhost ~]# vi first.sh
#!/bin/bash
# This is my first Shell-Script.
cd /boot
echo "当前的目录位于:"
pwd
echo "其中以vmi开头的文件包括:"
ls -lh vml*
[root@localhost ~]# chmod +x first.sh
[root@localhost ~]# ./first.sh
当前的目录位于:
/boot
其中以vmi开头的文件包括:
-rwxr-xr-x. 1 root root 6.4M Aug  8 21:27 vmlinuz-0-rescue-687e5a9e162e4e2da6800c175bc8a64e
-rwxr-xr-x. 1 root root 6.4M Nov  9  2018 vmlinuz-3.10.0-957.el7.x86_64

1.3 重定向与管道

1.3.1 重定向与管道操作

	■交互式硬件设备
	  ●标准输入:从该设备接收用户输入的数据
	  ●标准输出:通过该设备向用户输出数据
	  ●标准错误:通过该设备报告执行出错信息

	■重定向操作

	■管道操作符号“|”
	  ●将左侧的命令输出结果,作为右侧命令的处理对象
[root@localhost ~]# grep "bash$" /etc/passwd
root:x:0:0:root:/root:/bin/bash
tom:x:1000:1000:tom:/home/tom:/bin/bash
[root@localhost ~]# grep "bash$" /etc/passwd | awk -F: '{print $1,$7}'
root /bin/bash
tom /bin/bash

二、Shell脚本变量

2.1 自定义变量

2.1.1 Shell变量的作用、类型

	■变量的作用
	  ●用来存放系统和用户需要使用的特定参数(值)
	    ◆变量名:使用固定的名称,由系统预设或用户自定义
	    ◆变量值:能够根据用户设置、系统环境的变化而变化
	■变量的类型
	  ●自定义变量:由用户自己定义、修改和使用
	  ●特殊变量:环境变量、只读变量、位置变量,预定义变量
	
	■定义一个新的变量
	  ●变量名以字母或下划线开头,区分大小写,建议全大写
	■查看变量的值
[root@localhost ~]# Product=Python
[root@localhost ~]# Version=2.7.13
[root@localhost ~]# echo $Product 
Python
[root@localhost ~]# echo $Product $Version 
Python 2.7.13
	■赋值时使用引号
	  ●双引号:允许通过$符号引用其他变量值
	  ●单引号:禁止引用其他变量值,$视为普通字符
	  ●反撇号:命令替换,提取命令执行后的输出结果
	■从键盘输入内容为变量赋值
[root@localhost opt~]# echo $Product $Version 
Python 2.7.13
[root@localhost opt~]# echo "$Prduct $Version"
 2.7.13
[root@localhost opt~]# export Product Version
[root@localhost opt~]# bash
[root@localhost ~]# echo "$Product $Version"
Python 2.7.13
	■常用运算符

在这里插入图片描述

2.2 特殊变量

	■环境变量
	  ●由系统提前创建,用来设置用户的工作环境
	  ●配置文件:/etc/profile  ~/.bash_profile
	■常见的环境变量
	  ●PWD、PATH
	  ●USER、SHELL、HOME
	■只读变量
	  ●用于变量值不允许被修改的情况
[root@localhost ~]# name=cloud
[root@localhost ~]# readonly name   ##设置为只读变量##
[root@localhost ~]# echo $name
cloud
[root@localhost ~]# name=yun
bash: name: readonly variable    ##只读变量不可以被重新赋值##
[root@localhost ~]# unset name  ##只读变量不可以删除##
bash: unset: name: cannot unset: readonly variable
	■位置变量
	  ●表示为$n,n为1~9之间的数字
	■预定义变量
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值