小鸟初学Shell编程(六)变量赋值
变量的意义
我们在使用Linux命令或脚本的时候,会有一些输出,那么这些输出的信息可以用变量
临时存储,以备我们下一条命令或脚本使用。
变量的定义
变量的定义建议用一个有意义的英文单词来代表变量,不要使用简单的字母a
,b
这类的变量名定义。因为我们写好Shell脚本实际上是要给人看的,所以我们定义好的变量,是希望变量有具体的含义,能让阅读Shell脚本人能轻松的明白。
变量的命名规则:
- 字母、数字、下划线
- 不以数字开头
变量的赋值
为变量赋值的过程,称为变量替换
Shell脚本里变量是不区分变量类型的
变量赋值的规则:变量名=变量值
var=123
注意:赋值的等号左边右边是不能有空格的,如果出现空格那么执行的时候回进行报错
[root@lincoding ~]# var=123
[root@lincoding ~]#
[root@lincoding ~]# var =123
-bash: var: command not found
[root@lincoding ~]# var = 123
-bash: var: command not found
因为出现空格,Shell会认为前面的是命令而不是变量
使用let为变量赋值
[root@lincoding ~]# let num=10+10
[root@lincoding ~]# echo $num
20
用let
可以做简单的数字运算
将命令赋值给变量
[root@lincoding ~]# ls_cmd=ls
[root@lincoding ~]# ${ls_cmd}
anaconda-ks.cfg install.log install.log.syslog
还可以使用把命令赋值给变量,在使用变量的时候,相当于执行命令
将命令结果赋值给变量,使用$()或者``
[root@lincoding ~]# file_list=$(ls /tmp)
[root@lincoding ~]# echo ${file_list}
pear yum.log
[root@lincoding ~]# file_list=`ls /tmp`
[root@lincoding ~]# echo ${file_list}
pear yum.log
使用这种方式的好处,就是避免重复执行相同命令,增加服务器的开销,而是只执行一次命令,并把命令的结果保存到变量,做下一步的使用
变量值有空格等特殊字符可以包含在双引号""和单引号''
[root@lincoding ~]# var="1 2 3"
[root@lincoding ~]# echo $var
1 2 3
[root@lincoding ~]# var='a b c'
[root@lincoding ~]# echo $var
a b c
当字符串需要双引号时,需要用单引号来定义字符串
[root@lincoding ~]# var='"a" "b" "c"'
[root@lincoding ~]# echo $var
"a" "b" "c"
当字符串需要单引号时,需要用双引号来定义字符串
[root@lincoding ~]# var="'a' 'b' 'c'"
[root@lincoding ~]# echo $var
'a' 'b' 'c'
双引号和单引号还有个区别,就是单引号里字符串不管是特殊字符都会被解释成普通的字符串
[root@lincoding ~]# string="${var} , Shell"
[root@lincoding ~]# echo $string
hello , Shell
[root@lincoding ~]# string='${var} , Shell'
[root@lincoding ~]# echo $string
${var} , Shell
小结
在Shell里变量的定义是不需要定义类型的,变量赋值的时候等号两边不能有空格,变量可以赋值Linux的命令,也可以赋值运行Linux命令返回的结果输出内容,也可以做简单的数字计算,并双引号和单引号定义的字符串是有一定的区别的,单引号定义的字符串都会被解释成普通的字符串,不管是否有特殊字符。
小鸟初学Shell编程(六)变量赋值的更多相关文章
- 小鸟初学Shell编程(七)变量引用及作用范围
变量引用 那么定义好变量,如何打印变量的值呢?举例下变量引用的方式. ${变量名}称作为对变量的引用 echo ${变量名}查看变量的值 ${变量名}在部分情况下可以省略成 $变量名 [root@li ...
- Linux —— Shell编程之变量赋值和引用
Linux的shell编程是一种非常成熟的编程语言,它支持各种类型的变量.有三种主要的变量类型:环境变量.内部变量和用户变量. 环境变量(environment variable)是系统环境的一部分, ...
- 小鸟初学Shell编程(四)管道符
管道作用 管道实际上就是进程之间的一个通信工具,那么用在Linux命令中主要是方便两条命令互相之间可以相互通信. 管道符 管道符(匿名管道)是Shell编程经常用到的通信工具. 管道符是"| ...
- 小鸟初学Shell编程(一)认识Shell
开篇介绍 Linux里非常的有用的一个功能,这个功能就叫Shell脚本. Shell脚本在我日常开发工作里也占了非常重要的角色,项目中一些简单的工作我们都可以使用Shell脚本来完成,比如定时删除日志 ...
- shell编程之变量赋值
1.变量赋值: name=lbg 等号前后不能有空格 name="Lebron James" 变量值中有空格要用双引号 echo ${name} 用${}更保险 shopt -s ...
- 小鸟初学Shell编程(九)环境变量变量配置文件
介绍 在上一篇使用完了环境变量,并且知道PATH环境变量概念,那么我们对命令的执行就有了一定深入的理解.那么PATH环境变量或其他环境变量是保存在哪呢?那么这篇文章主要介绍环境变量配置文件. 配置文件 ...
- 小鸟初学Shell编程(八)环境变量、预定义变量与位置变量
环境变量 环境变量:每个Shell打开都可以获得到的变量. 我们知道通过export的方式打开可以让子进程读取父进程的变量的值,那怎么样才能让每一个进程都能读取到变量的值呢? 在这呢,系统有一些默认的 ...
- 小鸟初学Shell编程(五)输入输出重定向
重定向作用 一个进程默认会打开标准输入.标准输出.错误输出三个文件描述符. 重定向可以让我们的程序的标准输出.错误输出的信息重定向文件里,那么这里还可以将文件的内容代替键盘作为一种标准输入的方式. 重 ...
- 小鸟初学Shell编程(三)脚本不同执行方式的影响
执行命令的方式 执行Shell脚本的方式通常有以下四种 方式一:bash ./test.sh 方式二:./test.sh 方式三:source ./test.sh 方式四:. ./test.sh 执行 ...
随机推荐
- Windows下Python 3.6 安装BeautifulSoup库
- - 下载安装 安装方法如下: 到 - PIP安装 如果上一种方法安装不成功,可以用第二种方法,记住,Python3.6下是pip3. 安装方法如下: pip3 install beautifuls ...
- 企业账号发布APP
做了一个公司内部人使用的项目,公司申请了企业开发者账号.现将企业开发者账号发布app的过成总结如下: 1.生成Certificate Signing Request (CSR)文件 2.2 请求Cer ...
- Tomcat启动分析(二)-自己编译Tomcat
为了方便分析Tomcat源码,利用大家习惯的方式来进行Debug调试,那么如何将Tomcat源码导入到Eclipse呢,这就是本文的重点 1 准备 1.1 获取Tomcat源码 获取tomcat源码有 ...
- [20190531]ORA-600 kokasgi1故障模拟与恢复(后续).txt
[20190531]ORA-600 kokasgi1故障模拟与恢复(后续).txt --//http://blog.itpub.net/267265/viewspace-2646340/=>[2 ...
- 用Toad for Oracle创建数据库表空间和用户
打开Toad, 1,菜单栏Session—>new Connection….打开如下窗口: 2,进入之后,菜单DatebaseàSechema Brower...找到Table Space(表 ...
- Prometheus+Grafana监控MySQL、Redis数据库
俗话说,没有监控的系统就是在裸奔,好的监控就是运维人员的第三只手,第三只眼.本文将使用prometheus及Grafana搭建一套监控系统来监控主机及数据库(MySQL.Redis). 1. 安装G ...
- linux so库方式
gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so
- jmeter beanshell断言接口自动化实例
一.JMeter介绍 Apache JMeter是一款优秀的开源性能测试工具,在国外无论是在性能测试还是接口测试领域都有着非常高的使用率,但由于本身没有完善的中文文档以及典型开源工具特点(界面不美观) ...
- Html学习之十三(导航栏的制作)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- lua 11 闭包,函数的使用
转自:http://book.luaer.cn/_41.htm 当一个函数内部嵌套另一个函数定义时,内部的函数体可以访问外部的函数的局部变量,这种特征我们称作词法定界.虽然这看起来很清楚,事实并非如此 ...