Shell变量基础

13 篇文章 0 订阅

目录

一.基本定义变量

二.定义变量的三种方式区别

三.交互定义变量

四.重复定义变量

五.查看变量

六.变量删除     unset 变量名 

 下篇: Shell变量续篇-CSDN博客


一.基本定义变量

该如何定义变量呢?很简单,只需执行 变量名=变量值 命令即可,不过要遵守变量定义规则。

例如:

[root@localhost ~]# name="lzz 666"

 当我们需要提取变量中的内容时,需要在变量名之前加入"$"符号。 那么最简单的变量调用就是通过 echo 命令输出变量的值。命令如下:

[root@localhost ~]# echo $name
lzz 666

变量的定义就是这么简单,但是如果不遵守变量定义规则,就会报错。

那么变量定义的规范大致如下: 

           变量名不能以数字开头

           等号左右两侧不能有空格

           变量的值如果有空格,必须用引号包含,变量名和等号之间不能有空格

           命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。

           中间不能有空格,可以使用下划线(_)。

           不能使用标点符号。

           能使用bash里的关键字(可用help命令查看保留关键字)。

二.定义变量的三种方式区别

  1. 直接赋值variable=value
  2. 使用单引号variable='value'
  3. 使用双引号variable="value"

声明:variable 是你要定义的变量名,而 value 是你要赋给该变量的值。

  1. 如果 value 不包含任何空白符(例如空格、Tab缩进等),那么可以不使用引号;如果 value 包含了空白符,那么必须使用引号包围起来。
  2. 使用单引号和使用双引号是有区别的。双引号内的特殊字符(如$\等)会被解析,而单引号内的内容会被原样保留。
  3. 赋值号 = 的周围不能有空格,与其他编程语言不同。
  4. 变量名由数字、字母、下划线组成,必须以字母或者下划线开头,不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。

定义变量后,可以通过在变量名前加 $ 符号来调用变量。例如,如果定义了变量 A=hello,那么可以使用 echo $Aecho ${A} 来调用并显示变量的值。

Shell——三种引号的作用与区别-CSDN博客

三.交互定义变量

使用read定义变量是一个经常用的定义方式,可以让脚本灵活和用户友好。这里罗列一些常用的参数与使用方式。

使用read命令:这是最基本的交互式定义变量的方法。通过read命令后跟一个变量名来从用户那里获取输入,并将其存储在变量中。例如,read age将会提示用户输入年龄,并将输入的值赋给变量age。

[root@localhost ~]# read age  #使用read定义一个变量age
23                            #手动输入值23
[root@localhost ~]# echo $age #取age变量
23                            #输出结果23

添加提示信息:为了使用户知道需要输入什么,可以使用-p选项来添加提示信息。例如,read -p "请输入你的年龄: " age 它会在等待用户输入前显示"请输入你的年龄: "。

[root@localhost ~]# read -p "请输入你的年龄: " age
请输入你的年龄: 23
[root@localhost ~]# echo $age
23

限制输入长度:如果想要限制用户输入的字符数,可以使用-n选项。例如,read -n 1 -p "请输入一个字符: " char 它会让用户输入一个字符并存储在变量char中。

[root@localhost ~]# read -n 1 -p "请输入一个字符: " char 
请输入一个字符: f[root@localhost ~]# hjx
#这里限制输入一个字符f 然后超出输入的字符就会出现在命令终端上被废弃

隐藏输入内容:在某些情况下,希望用户输入的内容不被显示出来,可以使用-s选项来实现这一点。例如,read -s -p "请输入密码: " passwd 这会让用户输入密码,但输入的内容不会显示在屏幕上在登录mysql数据库中就是这样不显示密码。

[root@localhost ~]# read -s -p "请输入密码: " passwd
请输入密码: [root@localhost ~]# echo $passwd
2578#$

设置超时时间:如果不想无限期地等待用户输入,可以使用-t选项来设置一个超时时间。例如,read -t 10 -p "请在10秒内输入: " ans 这会在10秒后自动结束等待。

[root@localhost ~]# read -t 10 -p "请在10秒内输入: " ans
请在10秒内输入: [root@localhost ~]# 
#10秒没输入就自动退出啦

使用环境变量:在Shell脚本中,还可以使用环境变量,这些变量通常以大写字母表示,如$HOME$PATH等。环境变量通常用于存储系统级别的配置信息。

使用命令替换:使用命令的输出来定义变量,这称为命令替换。例如,time=$(date +%Y%m%d)会执行date命令,并将其输出的格式化日期赋值给变量time。

[root@localhost ~]# date
2024年 04月 19日 星期五 23:44:49 CST         #替换前
[root@localhost ~]# time=$(date +%Y-%m-%d)
[root@localhost ~]# echo $time
2024-04-19                                  #替换后的值

四.重复定义变量

直接赋值: 

[root@localhost ~]# aa=1
[root@localhost ~]# echo $aa
1
[root@localhost ~]# 
[root@localhost ~]# aa=2
[root@localhost ~]# echo $aa
2

使用"$变量名 "新增内容 :

[root@localhost ~]# aa=123
[root@localhost ~]# echo $aa
123
[root@localhost ~]# aa="$aa"456
[root@localhost ~]# echo $aa
123456

使用${变量名}新增内容 :

[root@localhost ~]# aa=123
[root@localhost ~]# echo $aa
123
[root@localhost ~]# aa="$aa"456
[root@localhost ~]# echo $aa
123456
[root@localhost ~]# aa=${aa}789
[root@localhost ~]# echo $aa
123456789

五.查看变量

通过 echo 命令查询已经设定的变量的值,这种查询是已知变量名查询变量值。

但是如果我不知道变量名,那么需要使用set命令查询系统中已经存在的变量。

set 是一个用于设置或显示环境变量的命令,在Linux系统中,set命令可以列出当前shell的所有变量,包括环境变量和局部变量。这些变量定义了shell的行为和特性,例如路径、语言、终端类型等。

例如,可以使用以下命令将名为MY_VARIABLE的环境变量设置为字符串hello

set MY_VARIABLE=hello world

以下命令将清除所有已定义的变量:

set --

env 是一个用于显示和定义系统环境变量的命令,同时也可以用来在新环境中执行指令

六.变量删除     unset 变量名 

[root@localhost ~]# aa=123
[root@localhost ~]# echo $aa
123
[root@localhost ~]# unset aa
[root@localhost ~]# echo $aa   #输出内容为空
                  
[root@localhost ~]# 

下篇: Shell变量续篇-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值