shell编程之变量

目录

 

Bash变量概述

shell与其他对比

Bash变量以及变量分类

什么是变量

变量命名规则

变量按照存储数据分类

变量分类

用户自定义变量

定义变量

变量调用

变量查看

变量删除

环境变量

环境变量和用户自定义的区别

​​​​​​​设置环境变量

​​​​​​​查看环境变量

删除环境变量

常用的环境变量

​​​​​​​PATH环境变量

​​​​​​​PS1环境变量

​​​​​​​当前语系查询

​​​​​​​语系变量LANG

​​​​​​​查询系统默认语系

位置参数变量

位置参数变量如图

​​​​​​​“$*”和“$@”的区别

预定义变量

预定义变量如图

​​​​​​​接收键盘输入

​​​​​​​

​​​​​​​

​​​​​​​


​​​​​​​

Bash变量概述

shell与其他对比

总的来说,不管是PHP,还是java它是用来编写程序或者网站,java主要是用来实现后端程序的。而shell编程,他是一个脚本语言,他不需要执行编译再执行,他是编译过程放在执行过程中,所以,所以执行要慢得多,shell主要是帮助管理员简化操作的。

Bash变量以及变量分类

什么是变量

  • 变量是计算机内存的单元,其中存放的值可以改变
  • 变量让你能够把程序中准备使用的每一段数据都赋给一个简短的、易于记忆的名字,因此他们十分有用

变量命名规则

  • 变量名必须以字母或者下划线打头,名字中间只能由字母、数字和下划线组成
  • 变量名的字符不得超过255个字符
  • 变量名在有效的范围内必须是唯一的
  • 在Bash中,变量的默认类型是字符串类型
  • 注意:
  •         在任何系统中,目录名、文件名、变量名都要有含义的

变量按照存储数据分类

  • 字符串型
  • 整型
  • 浮点型
  • 日期型

变量分类

  • 用户自定义变量:变量自定义的​​​​​​​
  • 环境变量:这种变量主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的
  • 位置参数变量(是预定义变量的一种):这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
  • 预定义变量:是Bash已经定义好的变量,变量名不能自定义,变量作用是固定的

用户自定义变量

定义变量

  • 变量名=变量值

​​​​​​​变量调用

  • echo $变量名

变量查看

  • set
  • 选项:
    • ​​​​​​​-u:如果设定此选项,调用未声明的变量时会报错(默认无任何提示)

变量删除

  • unset 变量名

环境变量

环境变量和用户自定义的区别

  • 环境变量是全局变量(当前shell和这个shell的所有子shell中生效)
  • 自定义变量是局部变量(只在当前shell生效)
  • 对系统生效的环境变量名和变量作用是固定的

​​​​​​​设置环境变量

  • expor 变量名=变量值 或者 变量名=变量值 export 变量名

​​​​​​​查看环境变量

  • set(#查看所有的变量)

  • env(#查看环境变量)

删除环境变量

  • unset 变量名

常用的环境变量

  • HOSTNAME:主机名
  • SHELL:当前shell
  • TERM:终端环境
  • HISTSIZE:历史命令条数
  • SSH_CLIENT:当前操作环境使用ssh连接的,这里记录客户端IP
  • SSH_TTY:ssh连接的终端时pts/1
  • USER:当前登陆的用户

​​​​​​​PATH环境变量

  • PATH变量:系统查找命令的路径
  • echo $PATH(#查看PATH环境变量)

​​​​​​​PS1环境变量

  • PS1变量:命令提示符设置
    • ​​​​​​​\d:显示日期,格式为“星期 月 日”​​​​​​​
    • \H:显示完整的主机名,
    • \t:显示24小时制的时间,格式为“HH:MM:SS”
    • \A:显示24小时制的时间,格式为“HH:MM”
    • \u:显示当前用户名
    • \w:显示当前所在目录的完整名称
    • \W:显示当前所在目录的最后一个目录
    • \$:提示符。如果是root用户会显示提示符为“#”,如果是普通用户会显示提示符为“$”

​​​​​​​当前语系查询

  • locale (#查询当前系统语系)
    • ​​​​​​​LANG:定义系统主语系变量
    • LC_ALL:定义整体语系变量

​​​​​​​语系变量LANG

  • echo $LANG(#查看系统当前语系)
  • locale -a | more(#查看Linux支持的所有语系)

​​​​​​​查询系统默认语系

  • cat /etc/sysconfig/i18n

位置参数变量

位置参数变量如图

​​​​​​​“$*”和“$@”的区别

  • $*中的所有参数看成是一个整体
  • $@中的每个参数都看成是独立的

预定义变量

预定义变量如图

​​​​​​​接收键盘输入

  • read【选项】【变量名】
  • 选项:
    • ​​​​​​​-p“提示信息”:在等待read输入时,输出提示信息
    • -t 秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
    • -n 字符数:read命令只接收指定的字符数,就会执行
    • -s:隐藏输入的数据,适用于机密的输入

​​​​​​​

​​​​​​​

​​​​​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值