变量

作者: 御都 | 来源:发表于2019-07-18 22:53 被阅读0次

1、变量的命名和使用规则
1.1 以字母和下划线为开头,不能包含特殊字符比如@,#,!等,区分大小写。在变量名前加$,比如$myFirstVar,建议用再用{}括起来避免发生误会。可以使用未初始化的变量,只是内容为空没有意义。

shiyanlou:~/ $ echo ${study} //可以使用未被定义的变量,只是为空                                                                                                      [22:24:52]

shiyanlou:~/ $ _name=Lily                                                                                                          [22:23:22]
shiyanlou:~/ $ _Name=Lucy                                                                                                          [22:24:20]
shiyanlou:~/ $ echo ${_name}                                                                                                       [22:24:27]
Lily
shiyanlou:~/ $ echo ${_Name}                                                                                                       [22:24:38]
Lucy
shiyanlou:~/ $ echo $_name_11           //认为要打印的变量为_name_11                                                                                       [22:32:20]

shiyanlou:~/ $ echo ${_name}_11     //{}括起来避免误会                                                                                               [22:34:38]
Lily_11

1.2 变量名初始化时,赋值号前后无空格,否则运行时会报错找不到该变量

shiyanlou:~/ $ test = 1                                                                                                            [22:21:45]
zsh: parse error: condition expected: =
shiyanlou:~/ $ test=1                                                                                                              [22:23:01]
shiyanlou:~/ $ echo ${test}                                                                                                        [22:23:09]
1
shiyanlou:~/ $   

1.3 变量的类型
共3种类型:字符串,整数数字和布尔值,数组和函数。如果要处理浮点数需要使用awk命令

shiyanlou:~/ $ a=1;b=true;c="hello shell"                                                                                          [21:01:39]
shiyanlou:~/ $ echo $a $b $c                                                                                                       [21:07:21]
1 true hello shell
shiyanlou:~/ $ 

1.4 给变量赋值为字符串时,如果字符串之间有空格需要用单/双引号将字符串扩起来

shiyanlou:~/ $ a=hello                                                                                                             [22:20:10]
shiyanlou:~/ $ echo $a                                                                                                             [22:20:19]
hello
shiyanlou:~/ $ b=hello world                                                                                                       [22:20:25]
zsh: command not found: world
shiyanlou:~/ $ b="hello world"                                                                                                     [22:20:36]
shiyanlou:~/ $ echo $b                                                                                                             [22:21:41]
hello world
shiyanlou:~/ $   

1.5 单双引号的区别
给变量赋值时没区别,和echo连用时,单引号只会按字面值打印,双引号会翻译出变量的值打印

hiyanlou:~/ $ echo '${_name} world'                                                                                               [22:28:10]
${_name} world
shiyanlou:~/ $ echo "${_name} world"                                                                                               [22:32:09]
Lily world
shiyanlou:~/ $   

1.6 反引号的作用,执行反引号中的命令,并返回执行后的结果

shiyanlou:~/ $ pwd                                                                                                                 [22:46:52]
/home/shiyanlou
shiyanlou:~/ $ te=`pwd`                                                                                                            [22:55:42]
shiyanlou:~/ $ echo $te                                                                                                            [22:56:00]
/home/shiyanlou
shiyanlou:~/ $ 

1.7 如果给变量赋值为字符串,在调用该变量时一定要加双引号,避免字符串为空引发表达式报异常或者错误

shiyanlou:Desktop/ $ a=""                                                       [22:54:03]
shiyanlou:Desktop/ $ b=hello                                                    [22:54:10]
shiyanlou:Desktop/ $ [ $a = $b ];echo $?    未加双引号导致异常                              [22:54:19]
zsh: parse error: condition expected: =
1
shiyanlou:Desktop/ $ [ "$a" = "$b" ];echo $?                                    [22:54:24]
1
shiyanlou:Desktop/ $  

2 变量的分类
变量分为2种,局部变量和环境变量,局部变量只能在该shell脚本中使用,环境变量在整个linux界面中都可以使用。
二、系统常见的环境变量
0-------当前运行脚本的名称N-------运行该脚本时传入的第N个参数
?-------执行上一个命令是否成功,成功则为0,失败为非0#-------传入参数的个数
$*-------打印传入的参数

#! /bin/bash
echo "\$0 = $0"
echo "\$1 = $1"
echo "\$2 = $2"
echo "\$? = $?"

执行命令 bash test.sh abc 123,结果为:

:~/ $ bash test.sh abc 123                          
$0 = test.sh
$1 = abc
$2 = 123
$? = 0

三 局部和环境变量的转换

相关文章

  • mysql变量

    变量 /*系统变量:全局变量会话变量 自定义变量:用户变量局部变量 */ 一、系统变量 /*说明:变量由系统定义,...

  • mysql存储过程和函数149-169

    变量 /*系统变量:全局变量会话变量自定义变量:用户变量局部变量*/ 一、系统变量 说明:变量有系统提供,不是用户...

  • php 变量和常量

    一、变量 创建变量以 $ 开头,以 ; 结尾 可变变量从变量中解析出变量名 变量赋值 将变量b 将变量b 销毁变量...

  • Golang入门一:变量

    变量声明 变量初始化 变量赋值 变量交换 匿名变量

  • bash脚本编程-变量,变量类型

    bash变量类型: 环境变量,本地变量,位置变量,特殊变量。 本地变量: bash: VARNAME=value ...

  • MySQL(十八)变量

    系统变量:全局变量、会话变量 自定义变量:用户变量、局部变量 一、系统变量 说明:变量由系统定义,不是用户定义,属...

  • 类,变量,迭代器

    1、变量 python中实际有4种变量,分别是全局变量,类变量,实例变量,局部变量。 - 全局变量:类之外的变量,...

  • Linux下的变量

    Linux下的变量 Linux变量 Linux下的变量主要分为三种:本地变量、环境变量和位置变量本地变量本地变量是...

  • 变量及检测数据类型

    变量定义var 变量名 = 变量值; 先定义在赋值var 变量名; 变量名 = 变量值; 定义多个变量var 变量...

  • Java学习笔记-1.4.2变量的分类

    变量的分类 从整体上可将变量划分为局部变量、成员变量(也称为实例变量)和静态变量 局部变量、成员变量、静态变量的区...

网友评论

      本文标题:变量

      本文链接:https://www.haomeiwen.com/subject/yqxdlctx.html