Linux——shell脚本

变量

变量命名规范

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线_
  • 不能使用标点符号
  • 不能使用bash里的关键字

变量类型

字符串

[root@localhost ~]# name=zhangsan

字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。

单引号

单引号的限制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
  • 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
[root@localhost /]# str=10
[root@localhost /]# echo '$str'
$str

双引号

双引号优点:

  • 双引号里可以有变量
  • 双引号里可以出现转义字符
[root@localhost /]# str='hello world'
[root@localhost /]# str1="print \"$str\"!"
[root@localhost /]# echo $str1
print "hello world"!

数值

  • 整型
  • 浮点型
[root@localhost ~]# age=30             整型
[root@localhost ~]# length=10.3536     浮点型

布尔型

[root@localhost ~]# is_right=True
[root@localhost ~]# is_right=False

变量操作

定义变量

注:变量名=变量值,不允许存在空格.

[root@localhost /]# num1=10

引用变量

引用一个定义过的变量,只要在变量名前面加美元号即可

[root@localhost /]# echo $num1
10

撤销变量

命令格式:unset 变量名

[root@localhost /]# unset num1
[root@localhost /]# echo $num1

bash变量的类型

环境变量(export)

所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

Bash常见系统内置环境变量

变量名 含义
PATH 命令存放路径
SHELL 当前用户的shell
UID 当前用户的uid
HISTSIZE history的历史长度
HOME 当前用户的家目录
PWD 当前位置
HISTFILE 当前用户history存放位置
PS1 命令提示符的样式

本地变量(局部变量local)

局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

位置变量

当我们执行一个 shell 脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量.

$n (n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数)
$* (这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@(这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$#(这个变量代表命令行中所有参数的个数)

特殊变量(Bash内置的,用来保存某些特殊数据的变量,也称系统变量)

符号 含义
$# 传给脚本的参数的个数
$0 脚本自身的名字(特殊的位置参数)
$! shell最后运行的后台进程的PID
$@ 传给脚本的所有参数的列表
$* 传给脚本的所有参数的列表
$$ 当前进程的PID
$? 返回状态(在脚本中默认显示的最后一条命令是否执行成功)

只读变量(常量)

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变

[root@localhost /]# readonly str=hello
[root@localhost /]# str=3
-bash: str: readonly variable           提示变量是只读的,无法进行更改
posted @ 2020-09-26 22:02  阿不思布丁  阅读(117)  评论(0编辑  收藏  举报