Shell编程规范与变量

目录

1.Shell脚本

1.1 Shell脚本概述

1.2 Shell的作用

1.3 编写Shell脚本

2.重定向与管道操作

2.1 交互式硬件设备

2.2 重定向操作

2.3 管道符号操作“|”

3.Shell脚本变量

3.1 自定义变量

3.2 如何调换两个变量的值

3.3 赋值时使用引号

3.4 变量的作用范围

3.5 整数变量的运算

3.6 浮点数变量的运算 

3.6 特殊的Shell变量

3.7 只读变量

3.8 位置变量

3.9 预定义变量

3.10 date用法


1.Shell脚本

1.1 Shell脚本概述

(1)Shell脚本概念
  • 将要执行的命令按顺序保存到一个文本文件

  • 给该文件可执行权限

  • 可结合各种Shell控制语句以完成更复杂的操作

(2)shell脚本应用场景
  • 重复性操作

  • 交互性任务

  • 批量事务处理

  • 服务运行状态监控

  • 定时任务执行

1.2 Shell的作用

Shell(壳程序)是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

查看系统中的shell类型;


1.3 编写Shell脚本

(1)编写脚本代码

使用vim 编辑器进行编写
vim tan.txt

(2)执行shell脚本三种方法

1.bash/sh 指定脚本文件运行(sh为bash软连接)可无执行权限

2.使用绝对路径或相对路径指定脚本文件运行,需要有执行权限

以上两种方式执行脚本都是在子shell环境中执行脚本

3.source/. 指定脚本文件运行,可无执行权限

会在当前shell环境中执行脚本(改变目录等等)

2.重定向与管道操作

2.1 交互式硬件设备

2.2 重定向操作

重定向输入:<,从指定文件读取数据;

重定向输出:>,将输出结果保存到指定文件,会覆盖文件中原有内容;
                      >>,将输出结果追加到指定文件的尾部,可以实现合并两个文件的效果;

标准错误输出:2>,将错误信息保存到指定的文件中,会覆盖文件中原有的内容;
                          2>>,将错误信息追加保存到指定的文件中,不会覆盖文件中原有的内容;

混合输出:&>将代码正确执行的内容标准输出到指定文件中,或者将错误信息保存到指定文件;
                   &>>将代码正确执行的内容标准输出到指定文件末尾,或者将错误信息保存到指定文件末尾;

混合输出的补充知识:(2>&1:将标准错误输出重定向到标准输出)

echo 123 > tan.txt 2>&1     #等同于echo 123 &> tan.txt
###本来echo 123为1-->屏幕(1指向屏幕)
###执行>tan.txt后,1-->tan.txt〔1指向tan.txt)
###执行2>&1后,2-->1 (2指向1,而1指向tan.txt,因此2也指向了tan.txt)

2.3 管道符号操作“|”

3.Shell脚本变量

3.1 自定义变量

定义变量的两种方法;

第一种方法

变量名=变量值;变量名可用用大小写字母或数字开头其中数字开头必须加_

如何查看多个变量值?

第二种方法

read -p “提示内容” 变量名

3.2 如何调换两个变量的值

3.3 赋值时使用引号



反撇号:用于提取命令执行后的结果;作用效果等于$()

3.4变量的作用范围

使用export设置当前会话中为全局变量,使得任何shell环境中都能生效

如何使在所有用户在所有shell中有效?

方法1:修改etc/bashrc(每次切换shell环境都会执行该文件里的配置)文件,添加变量命令


方法2:修改/etc/profile文件中定义变量


 使用source /etc/profile 立即生效 或 重新登录系统自动生效

3.5 整数变量的运算

除expr以外的整数运算

1.echo $(expr 整数1/变量1 运算符 整数2/变量2)+ - \* / %

2.echo $[整数1/变量1 运算符 整数2/变量2]  +  -  *  /  %  

3.echo $((整数1/变量1  运算符 整数2/变量1 ))  +  -  *  /  %   

4.let 变量

3.6 浮点数变量的运算 

echo 'n.n+m.m' | bc

awk 'BEGIN{print n.n+m.m}'

3.6 特殊的Shell变量

常见的环境变量

PWD

PATH

USER

SHELL

HOME

LANG

env查询当前系统所有环境变量

3.7 只读变量

只读变量不允许修改和删除,消除只读变量的方法只能重启

3.8 位置变量

如何将${10}与${11}相加

3.9 预定义变量


$0  代表脚本本身
$#  代表脚本后面跟的位置参数的数量
$?  代表的是上一条Linux命令执行的返回状态码(0~255),0表示上一条命令执行正确,非0值则表示上一条命令执行异常
$*  默认代表脚本后面跟的所有参数,加上双引号后 "$*" 会把所有参数看做一个整体
$@  默认代表脚本后面跟的所有参数,加上双引号后 "$@" 还是会把每个参数看做

$#:代表脚本后面跟的位置参数的数量

$0:代表脚本本身

$?:判断命令执行是否成功0为成功,只返回上一条命令的执行结果

$*:默认代表脚本后面跟的所有参数,加上双引号后 "$*" 会把所有参数看做一个整体
$@:默认代表脚本后面跟的所有参数,加上双引号后 "$@" 还是会把每个参数看做
不加双引号时


加双引号时

3.10 date用法

通过使用date --help 可用查询到date的一些用法

  • 22
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值