加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

小鸟初学Shell编程(六)变量赋值

发布时间:2020-12-16 01:39:53 所属栏目:安全 来源:网络整理
导读:变量的意义 我们在使用Linux命令或脚本的时候,会有一些输出,那么这些输出的信息可以用 变量 临时存储,以备我们下一条命令或脚本使用。 变量的定义 变量的定义建议用一个有意义的英文单词来代表变量,不要使用简单的字母 a , b 这类的变量名定义。因为我

变量的意义

我们在使用Linux命令或脚本的时候,会有一些输出,那么这些输出的信息可以用变量临时存储,以备我们下一条命令或脚本使用。


变量的定义

变量的定义建议用一个有意义的英文单词来代表变量,不要使用简单的字母ab 这类的变量名定义。因为我们写好Shell脚本实际上是要给人看的,所以我们定义好的变量,是希望变量有具体的含义,能让阅读Shell脚本人能轻松的明白。

变量的命名规则:

  • 字母、数字、下划线
  • 不以数字开头

变量的赋值

为变量赋值的过程,称为变量替换

Shell脚本里变量是不区分变量类型的

变量赋值的规则:变量名=变量值
var=123
注意:赋值的等号左边右边是不能有空格的,如果出现空格那么执行的时候回进行报错

[[email?protected] ~]# var=123
[[email?protected] ~]#
[[email?protected] ~]# var =123
-bash: var: command not found
[[email?protected] ~]# var = 123
-bash: var: command not found

因为出现空格,Shell会认为前面的是命令而不是变量

使用let为变量赋值
[[email?protected] ~]# let num=10+10
[[email?protected] ~]# echo $num
20

let可以做简单的数字运算

将命令赋值给变量
[[email?protected] ~]# ls_cmd=ls
[[email?protected] ~]# ${ls_cmd}
anaconda-ks.cfg  install.log  install.log.syslog

还可以使用把命令赋值给变量,在使用变量的时候,相当于执行命令

将命令结果赋值给变量,使用$()或者``
[[email?protected] ~]# file_list=$(ls /tmp)
[[email?protected] ~]# echo ${file_list}
pear yum.log

[[email?protected] ~]# file_list=`ls /tmp`
[[email?protected] ~]# echo ${file_list}
pear yum.log

使用这种方式的好处,就是避免重复执行相同命令,增加服务器的开销,而是只执行一次命令,并把命令的结果保存到变量,做下一步的使用

变量值有空格等特殊字符可以包含在双引号""和单引号‘‘
[[email?protected] ~]# var="1 2 3"
[[email?protected] ~]# echo $var
1 2 3

[[email?protected] ~]# var='a b c'
[[email?protected] ~]# echo $var
a b c

当字符串需要双引号时,需要用单引号来定义字符串

[[email?protected] ~]# var='"a" "b" "c"'
[[email?protected] ~]# echo $var
"a" "b" "c"

当字符串需要单引号时,需要用双引号来定义字符串

[[email?protected] ~]# var="'a' 'b' 'c'"
[[email?protected] ~]# echo $var
'a' 'b' 'c'

双引号和单引号还有个区别,就是单引号里字符串不管是特殊字符都会被解释成普通的字符串

[[email?protected] ~]# string="${var},Shell"
[[email?protected] ~]# echo $string
hello,Shell
[[email?protected] ~]# string='${var},Shell'
[[email?protected] ~]# echo $string
${var},Shell

小结

在Shell里变量的定义是不需要定义类型的,变量赋值的时候等号两边不能有空格,变量可以赋值Linux的命令,也可以赋值运行Linux命令返回的结果输出内容,也可以做简单的数字计算,并双引号和单引号定义的字符串是有一定的区别的,单引号定义的字符串都会被解释成普通的字符串,不管是否有特殊字符。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读