shell脚本编程规范与变量

本文介绍了Shell在操作系统中的作用,包括不同类型的Shell如bash和tcsh,Shell脚本的编写、自动化运维的应用,以及Shell的执行方式、变量管理、环境变量和运算符。

Shell是什么?shell介于人和计算机内核之间

Shell的类型 用命令查看

/bin/sh 已经淘汰

/bin/bash 现在常用的也是Linux默认的shell 管理员

/sbin/nologin

/usr/bin/sh

/usr/bin/bash 现在常用的也是Linux默认的shell 普通用户

/usr/sbin/nologin

/bin/tcsh 基于tcsh 提供更多的扩展功能

/bin/csh 类C语言shell

默认使用的shell就是bash

查看用户使用的shell

Shell脚本:脚本语言 扩建语言 动态语言 也是编程语言的一种 主要用来控制软件应用程序

都是以文本形式保存 只有被调用的时候 文本代码才会被解释或编译 执行

默认.sh结尾

Shell脚本的作用

  1. 自动化运维(配合定时任务)
  2. 批量化重复操作可以通过脚本执行 减少人工的重复输入
  3. 减轻管理员的工作量
  4. 提高处理文件的速度
  5. 避免配置出错

只要是Linux可以执行的 都可以写进脚本里

Shell的组成结构:

  1. 声明解释器
  2. #代表注释 注释掉的代码不会执行 而且是按行执行
  3. 脚本当中的语句 Linux可执行命令都可以作为shell脚本的语句
  4. 脚本执行语句执行顺序是从上到下 依次按行执行

Shell的执行方式:

  1. 赋权执行 执行权限
  2. 不赋权执行(脚本调试) sh 脚本名 cource 脚本名

Source命令:点命令 . 对于刚刚修改的文件进行初始化操作(文件的内容都是shell语句 都是可执行的命令)执行source可以不需要重启 使更改内容直接生效

Sh:只在当前环境运行 并不涉及子shell环境的切换

Source:新建一个shell 继续执行 所有的执行结果都会保存在这个shell里面

赋权执行

Chomd 777 文件名   ./可执行文件 在当前目录可以直接执行

/opt/可执行文件名 绝对路径来写

需要执行的脚本不能放在用户的家目录 最好放在/opt目录中

标准输入 键盘 文件编号是0 正常执行的命令结果

标准输出 显示器 显示输出的结果

标准错误 显示器 显示错误的输入信息

重定向 echo 123 > 123

将标准输出的内容保存到指定的文件

重定向错误输出 2> 2>> 正确输出不会保存

混合输出 &> 会覆盖原有内容 &>> 不会覆盖

重定向输入

定时任务必须绝对路径

怎么在shell脚本中定义变量 已经shell脚本的变量类型 shell的运算符

变量:面向对象 对象的名称 对象的属性

变量名

属性:变量的值 对象的描述信息

变量属性 值的类型 int string

变量名=属性值

打印变量值

echo $变量名

变量的命名规范 自定义变量:不要使用Linux系统命令作为变量名

                           不要使用中文

                           不要试图特殊符号作为开头

                           默认加注释 变量名引用保持前后一致

自定义变量”” ‘’ ``(命令替换)

Read -p “提示信息” 变量名

变量的作用范围

默认情况 新定义的变量只在当前的shell环境中有效

全局变量:

Export 变量名=变量值 /etc/profile 需要在一整套环境中引用唯一且不需要变化的变量时 才会声明全局变量

环境变量 由系统提前创建 用户也可以添加设置用户的工作环境 配置系统行为 控制程序执行 特殊的全局变量

用户级环境变量 env查看全部 echo $PATH查看用户的

添加用户变量 只对当前用户可见

预定义环境变量 系统预设 所有人都可见 相当于全局变量

自定义环境变量 特殊的全局变量 只对设置用户有效

$USER显示用户的名称

$HOME 用户的家目录

$PWD:表示当前所在的工作目录

$PATH:可执行用户程序的默认路径

位置变量:

命令行参数 在脚本或者程序运行时传递给他们的值 而且位置变量在脚本外部传递变量值

$n 1-9

外部传参

预定义变量:

编程语言或脚本解释器提供的 不能修改 只能根据需要进行自动设置或更新

$*和$@ 表示命令或脚本需要处理的参数

$*和$@不加引号时表现一致 都会把参数分行处理

“$*”会把参数当成一行处理

$@加不加都会分行处理

$# 显示需要处理的参数个数

$? 表示前一条命令或者脚本执行之后的返回状态码 只有返回0才是执行成功 所有非0全部执行失败 也可以用在函数中作为return的返回值

Shell脚本整数的运算方式

{C=$(($a+$b))

C=$[12+5]

Let c=12*5

C=$(expr 12 + 5)}只能用于整数

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值