shell教程–shell变量

一、变量命名规则

  1. 命名只能使用英文字母数字下划线,首个字符不能以数字开头
  2. 中间不能有空格,可以使用下划线(_)。
  3. 不能使用标点符号。
  4. 不能使用bash里的关键字(可用help命令查看保留关键字)。

二、变量的定义与使用

  1. a=1 内容为简单连续字符串和数字时,可以这样用
  2. a=‘1’ 这种定义单引号里什么内容输出就是什么内容
  3. a=“1” 会把双引号里的变量或者命令解析了再输出出来

注:当变量名后面连接有其他字符串的时候,必须给变量加上大括号{}
如:

[root@xsnq ~]# a=does
[root@xsnq ~]# echo "I love one girl, but she ${a}n't love me. "
I love one girl, but she doesn't love me. 
//没有加{}的话
[root@xsnq ~]# echo "I love one girl, but she $an't love me. "
I love one girl, but she 't love me. 

设置变量的注意事项:

  • 等号两侧都不能含有任何空格!
  • 若变量值必须有空格,则可以使用单引号 或 双引号将变量值包裹起来,但其中意义会发生改变。
  1. 从键盘读取变量:read
read [-p 提示语] [-t 时间] 变量名
-p:后面加上提示语
-t:后加上秒数,表示等待用户输入的时间

例,

[root@xsnq ~]# read -p 博主 -t 5 a
博主xsnq
[root@xsnq ~]# echo $a
xsnq

三、删除变量

unset 变量名
  • 变量被删除后不能再次使用。
  • unset 命令不能删除只读变量。

扩展,

只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
下面的例子尝试更改只读变量,结果报错:

[root@xsnq ~]# fact="She doesn't love me"
[root@xsnq ~]# readonly fact
[root@xsnq ~]# fact="She loves me."
//结果如下
-bash: fact: 只读变量

四、变量类型

  1. 局部变量
    局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
  2. 环境变量
    所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。
  • 使用 export 命令可以查看当前系统的环境变量
  1. shell变量
    shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
    常用的如:PWD、UID、SHLVL、REPLY、RANDOM、SECONDS、IFS、PATH、HOME

本文出现任何错误,请留言私信批评指正。

上一节(shell教程–4种常用的转义字符)
下一节(shell教程–shell字符串)

猜你喜欢

转载自blog.csdn.net/weixin_46623617/article/details/112843033