shell编程规范与变量

  • read命令
  • 变量的作用范围
    • export命令
  • 变量的运算
    • 环境变量
    • 只读变最
    • 位置变量
    • 预定义变量
  • 本章总结

read命令

用来提示用户输入信息,从而实现简单的交互过程。执行时将从标准输入设备(键盘)读入一行内容,并以空格为分隔符,将读入的各字段依次赋值给指定的变量(多余的内容赋值给最后一个变量)。若指定的变量只有一个,则将整行内容赋值给此变量。

-p 进行交互

交互式定义变量( read)
-p :提示用户的信息
-n :定义字符数
-s :不显示用户输入的内容,常用于输入密码read -s -p “input your password:” pass
-t :定义超时时间,超过多长时间没输自动退出

变量的作用范围

默认情况下,新定义的变量只在当前的 shell环境中有效,因此称为局部变量,当进入子程序或新的子shell 环境时,局部变量将无法再使用

export命令

为了使用户定义的变量在所有的子 shell环境中能够继续使用,减少重复设置工作,可以通过内部命令export
将指定的变量导出为全局变量。用户可以同时指定多个变量名称作为参数(无须使用" $ "符号),变量名之间以空格分隔

使用export导出全局变量的同时,也可以为变量进行赋值,这样在新定义全局变量时就不需要提前进行赋值了env查看用户当前环境变量
export ABC=123
再次env就能看到了
export -n ABC取消定义的全局变量变成局部变量

变量的运算

整数变量的运算
expr 变量1 运算符 变量2 【运算符 变量3】…

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

数值变量的运算及特殊变量
在 Bash shell环境中,只能进行简单的整数运算,不支持小数运算
整数值的运算主要通过内部命令expr进行
运算符与变量之间必须有至少一个空格。
运算内容:加(+)、减(-)、乘( * )、除(/)、取余(%)
运算符号: $ (()) 和 $ 【】
运算命令: expr和let
运算工具: bc(系统自带)

注意等号和反撇号之间没空格

用脚本编写一个求和

let的运算可以改变变量本身的值,但不显示结果,需要echo,其他的运算方式可以做运算但不改变变量本身的值

使用bc进行运算,支持小数运算,但在脚本中不可直接使用否则会进入交互界面可以用echo结合管道使用

bc还可以判断,真为1,假为0

环境变量

环境变量指的是出于运行需要而由Linux
系统提前创建的一类变量,主要用于设置用户的工作环境,包括用户宿主目录、命令查找路径、用户当前目录、登录终端等。
环境变最的值由 Linux系统自动维护,会随着用户状态的改变而改变。
使用env命令可以查看到当前工作环境下的环境变量,对于常见的一些环境变量应了解其各自的用途。例如,变量USER表示用户名称,HO ME表示用户的宿主日录,LANG表示语言和字符集,PwD 表示当前所在的工作目录,PATH
表示命令搜索路径等、RANDOM表示随机数,会返回0-32767的整数,USER表示当前账户的账户名称等,一般都用全大写定义,注意和白定义变量区分

PATH变量用于设置可执行程序的默认搜索路径,当仅指定文件名称来执行命令程序时,Linux 系统将在变量指定的目录范围查找对应的可执行文件,如果找不到则会提示"command not found"。

只读变最

Shell变量中有一种特殊情况,一经设定,其值是不可改变的,这种变量被称为只读变
量。在创建变量的时候可将其设置为只读属性,也可以将已存在的变量设置为只读属性,只读变量主要用于变量值不允许被修改的情况
只读变量不可以改变值也不可以被删除

需要重登陆释放变量才可以继续使用

位置变量

当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。
位置变量也称为位置参数,使用$1、$2、$3、…、$9表示
命令或脚本本身的名称使用"$0”表示

预定义变量

预定义变量是由 Bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,而
不能创建新的预定义变量,也不能直接为预定义变量赋值。预定义变量使用" $"符号和另一个符号组合表示

$ #:表示命令行中位置参数的个数。
$ *:表示所有位置参数的内容,这些内容当做一个整体
$ @:表示列出所有位置参数,但是是以单个的形式的列出
$ ? :表示前一条命令执行后的返回状态,返回值为0表示执行正确,返回任何非0值均表示执行出现异常。
$ 0:表示当前执行的脚本或程序的名称
$ $ :表示返回当前进程的进程号
$ !:返回最后一个后台进程的进程号


本章总结

Shell的作用与应用场景
Shell脚本的编写规范与执行方法
重定向与管道的作用与使用方法
自定义变量赋值时单引号、双引号、反撇号的使用方法数值变量的常用运算符:+、-、*、/、%
环境变量、只读变量、位置变量、预定义变量的用途

shell编程规范与变量2相关推荐

  1. 【拔刀吧少年】之shell编程规范与变量

    shell编程规范与变量 一.Shell脚本概述 1.shell脚本的概念 2.shell脚本应用场景 3.shell的作用--命令翻译器,"翻译官"(`又称命令的组合`) 二.用 ...

  2. shell脚本详解(一)——Shell编程规范与变量

    详解Shell编程规范与变量 一.Shell脚本概述 1.shell脚本的概念 2.shell脚本应用场景 3.shell的作用--命令翻译器,"翻译官" 二.用户的登录shell ...

  3. Shell脚本——Shell编程规范及变量

    Shell编程规范及变量 一.Shell脚本概述 1.1.1 Shell基本概念 1.1.2 Shell脚本应用场景 1.1.3 Shell作用--翻译官 二.shell编程规范 2.1 用户登录sh ...

  4. Shell脚本:shell编程规范与变量

    shell编程规范与变量 一.概述:解释器,编译器,翻译官. 1.定义: 2.作用: 3.应用场景: 4.登录: 5.shell脚本基本格式: 二.重定向与管道操作: 1.交互式硬件设备: 2.重定向 ...

  5. Shell 编程规范与变量

    文章目录 1 Shell 1.1 Shell 作用 2 Shell 脚本概述 2.1 Shell 脚本应用场景 3 编写 Shell 脚本 3.1 脚本的构成 3.2 编写脚本代码 3.2.1 注释有 ...

  6. Shell编程规范与变量(shell编程规范,执行脚本文件的四种方式,管道符号与重定向,shell变量的作用于类型)

    文章目录 Shell脚本概述 Shell脚本的概念 Shell的作用 Shell编程规范 重定向与管道 Shell脚本变量 自定义变量 特殊变量 Shell脚本概述 Shell Script ,She ...

  7. Shell编程规范与Shell中的管道符号(|)和重定向符号<、>、>>

    Shell脚本编程规范 Shell脚本的应用场景 Shell编程规范 1.Shell解释器程序的种类 2.编写一个简单的Shell脚本 3.执行脚本文件的方式 4.Shell环境中的:管道(|)与重定 ...

  8. Linux学习总结(79)—— Shell 编程规范

    前言 Shell 编程与其它的语言一样也有其约定的一些大家共同认可的约束和规范.编码规范对于程序员而言尤为重要,有以下几个原因: 一个软件的生命周期中,80% 的花费在于维护 几乎没有任何一个软件,在 ...

  9. Linux【实操篇】—— Shell 编程入门、变量、运算符、条件判断、流程控制

    目录 一.Shell 编程入门 1. 认识 Shell 2. Shell 脚本的创建与执行 二.Shell 变量 1. 系统变量和自定义变量 2. 变量的基本规则 3. 设置环境变量 4. 位置参数变 ...

  10. shell编程之特殊变量

    一.特殊变量:$n 1.基本语法 $n(功能描述:n为数字,$0代表该脚本名称, $1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10}) 2.案例实操 [root@ ...

最新文章

  1. WCF .net Tcp 错误异常
  2. ElasticSearch 深入理解 三:集群部署设计
  3. 计算机重复启动问题原因及修复
  4. windows配置samba客户端_如何搭建与Windows客户机结合使用的Samba文件服务器?
  5. 大数据学习——虚拟机准备(改主机名)
  6. CSS、JavaScript和Ajax实现图片预加载的三大方法及优缺点分析
  7. NAND FLASH ECC校验原理与实现
  8. div垂直居中的N种方法以及多行文本垂直居中的方法
  9. 逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖
  10. C语言 判断一个数是否为2的若干次幂
  11. js判断用户是第一次点击还是第二次点击
  12. JS中更改样式属性或者更改类名
  13. 新点软件怎么导入清单_【新点软件怎么导出到excel】新点造价软件怎么导入清单...
  14. 数据防泄密-新时代公司发展的必须
  15. IDEA做数据库操作时的一个莫名其妙的错误
  16. 一个女孩写给女孩的话
  17. 香港影评会选出电影史上十大华语片
  18. 什么是运维?运维工程师主要是做什么?
  19. python 给qq点赞_Python学习二:使用Python实现在QQ空间批量点赞
  20. SpringBoot+Vue实现前后端分离的汽车配件销售管理系统

热门文章

  1. NLP硬核入门-隐马尔科夫模型HMM
  2. 6.6 AdaBoost实战
  3. mysql基础7-MYSQL连接查询
  4. 几点Java程序必须满足的基本规则
  5. Zabbix监控系统深度实践
  6. 莫陷入点击和评论陷阱
  7. open读取文件操作
  8. matplotlib无法显示图片的解决方法(non-gui backend)
  9. 机器学习之特征选择(feature_selection)
  10. java 对文件名非法字符处理