小鸟初学Shell编程(六)变量赋值
变量的意义我们在使用Linux命令或脚本的时候,会有一些输出,那么这些输出的信息可以用 变量的定义变量的定义建议用一个有意义的英文单词来代表变量,不要使用简单的字母 变量的命名规则:
变量的赋值为变量赋值的过程,称为变量替换 Shell脚本里变量是不区分变量类型的 变量赋值的规则:变量名=变量值 [[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 用 将命令赋值给变量[[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命令返回的结果输出内容,也可以做简单的数字计算,并双引号和单引号定义的字符串是有一定的区别的,单引号定义的字符串都会被解释成普通的字符串,不管是否有特殊字符。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- scala – 为什么productIterator返回类型Iterato
- 【angular】angualr中实现js跳转路由
- shell – Tomcat servlet引擎未运行,但pid文件存
- angularjs – 我如何限制角度$q承诺并发?
- anglejs:ng-repeat-start和ng-repeat-end与内部
- 如何使用vim打开目录下的每个.txt文件(使用Bash)
- angularjs – Angular路由器解析导致未知的提供程
- 基于AngularJS前端路由,实现一个最简单的图片翻
- Angular指令渗透式理解
- scala – (run-main-0)java.lang.NoSuchMethodEr