小鸟初学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 执行 ...
随机推荐
- 初始HTML_表格
Html表格 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- npm命令集合
1.npm初始化项目:npm init 或者 npm init --yes 生产 package.json文件 2.下载package.json安装包: npm install 缩写 npm i
- Vue实战狗尾草博客管理平台第六章
Vue实现狗尾草博客后台管理系统第六章 本章节内容 文章列表 文章详情 草稿箱 文章发布. 本章节内容呢,开发的很是随意哈,因为多数就是element-ui的使用,熟悉的童鞋,是可以很快完成本章节的内 ...
- SRDC - ORA-1548: Checklist of Evidence to Supply (Doc ID 1682693.1)
SRDC - ORA-1548: Checklist of Evidence to Supply (Doc ID 1682693.1) Action Plan 1. Execute srdc_db_u ...
- C/S与B/S架构
目录 软件开发架构 C/S架构 数据放在服务端和客户端的利弊: B/S架构 软件开发架构 开发软件,必须要开发一套 客户端 和 服务端 服务端与客户端的作用 服务端:24小时不间断提供服务 客户端:享 ...
- wsl笔记
目录 环境 修改更新源 新建用户 设置超级用户 环境变量 zsh美化终端 设zsh为默认shell 环境变量PATH 开启 ssh 远程连接 apt命令与问题 windows 和 wsl 互相访问文件 ...
- Linux-TCP之深入浅出send和recv【转】
转自:https://www.cnblogs.com/JohnABC/p/7238417.html 内容摘自:TCP之深入浅出send和recv.再次深入理解TCP网络编程中的send和recv 建议 ...
- 《Verilog数字系统设计教程(第2版).pdf》
Verilog数字系统设计教程(第2版).pdf https://github.com/shigh1005/pdf_book <Linux设备驱动开发详解:基于最新的Linux 4.0内核.pd ...
- FT_Get_Var error on comiling
[Julian@julian-linux-t450 gtk]$ gcc `pkg-config --cflags gtk+-.` -o exam00 exam00.c `pkg-config --li ...
- Python高级应用程序设计任务期末作业
Python高级应用程序设计任务要求 用Python实现一个面向主题的网络爬虫程序,并完成以下内容:(注:每人一题,主题内容自选,所有设计内容与源代码需提交到博客园平台) 一.主题式网络爬虫设计方案( ...