linux shell之变量的使用规则
时间:2022-07-23
本文章向大家介绍linux shell之变量的使用规则,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
声明
以下内容均引用自鸟哥私房菜
变量的使用规则
1.变量与变量内容以一个等号”=”连接
[root@localhost ~]# myname=lichao
2.等号两边不能存在空格字符
[root@localhost kernel]# myname=li chao
bash: chao: command not found...
3.变量名称只能是英文字母或者数字,但是开头字符不能是数字
4.变量内容若有空格符可使用双引号或者单引号将变量内容结合起来,但是
1)双引号内的特殊字符可以保持原有的特性 2)单引号内的特殊字符仅为一般字符 如下所示:引用变量myname
[root@localhost ~]# myname=lichao
[root@localhost ~]# echo $myname
lichao
[root@localhost ~]# info="$myname is an software engineer"
[root@localhost ~]# echo $info
lichao is an software engineer
[root@localhost ~]# info2='$myname is an software engineer'
[root@localhost ~]# echo $info2
$myname is an software engineer
5.可以使用转义字符””将特殊符号(如[enter],$,空格,!)等变成一般字符
[root@localhost ~]# var=i'm an engineer
[root@localhost ~]# echo $var
i'm an engineer
6.想要在原有变量上增加内容,可以使用
”$变量”或者${变量}
[root@localhost kernel]# info="my name is lichao"
[root@localhost kernel]# info=${info},and age is
[root@localhost kernel]# echo $info
my name is lichao,and age is
[root@localhost kernel]# info="$info" xxx
[root@localhost kernel]# echo $info
my name is lichao,and age is xxx
7.在一串命令中如果想引用其它命令,可以使用反单引号或者$(命令)
给变量赋值
[root@localhost zabbix]# version=$(uname -r)
[root@localhost zabbix]# echo $version
3.10.0-514.16.1.el7.x86_64
或者在路径中引用
[root@localhost zabbix]# cd /lib/modules/`uname -r`/kernel
[root@localhost kernel]# pwd
/lib/modules/3.10.0-514.16.1.el7.x86_64/kernel
注意反单引号或者$(命令) 这里面需要的是命令,不要和第6条中的变量的增加搞混淆了,上面version变量已经赋值了,但是像下面这样的写法是有问题的。
[root@localhost kernel]# cd /lib/modules/$(version)/kernel
bash: version: command not found...
-bash: cd: /lib/modules//kernel: No such file or directory
$()里面应该是指令而不应该是变量,要想引用变量内容需要使用中括号。
[root@localhost ~]# cd /lib/modules/${version}/kernel
[root@localhost kernel]# pwd
/lib/modules/3.10.0-514.16.1.el7.x86_64/kernel
8.取消变量的使用unset 变量名
查看环境变量可以使用指令env,查看环境变量和自定义变量可以使用set。
[root@localhost locale]# set | grep myname
info2='$myname is an software engineer'
myname=lichao
也可以使用export来查看环境变量,但是export通常是用来将自定义变量转换成环境变量。
备注:以上内容均是学习鸟哥私房菜这本书做的笔记。
- 从5个方面对比微信小程序和App
- ActiveMQ笔记(7):如何清理无效的延时消息?
- JS魔法堂:再识Bitwise Operation & Bitwise Shift
- Hadoop(十三)分析MapReduce程序
- mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境
- 基础野:细说无符号整数
- Ubuntu12.04安装QQ for Linux
- 树莓派:最好的安排
- idea 高级调试技巧
- JS魔法堂:彻底理解0.1 + 0.2 === 0.30000000000000004的背后
- mybatis: 利用多数据源实现分库存储
- 树莓派:文本编辑器与文件
- Java常用类(三)之StringBuffer与StringBuidler
- 使用监听器:定时清除map缓存
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Golang之rpc框架rpcx
- gin websocket 一对一聊天
- Go 中文和unicode字符之间转换
- Go 加密解密算法总结
- Linux 中几个正则表达式的用法
- embedded.AnnotationConfigEmbeddedWeb ApplicationContext@1e67b872 has been closed already
- Js实现list导出为excel表格
- 宿舍(寝室)管理系统设计与实现(SSM框架 附 详细系统搭建教程、系统演示地址、实现过程、源码)
- Redis get key error
- elastic search 日志不打印问题(root用户惹的祸)
- 起飞 | 应用YOLOV4 - DeepSort 实现目标跟踪
- 如何将elastic search 的健康状态由红色red变为绿色green
- 拥抱K8s系列-01
- elastic search 修改日志级别为warn
- prometheus学习笔记(3)-使用exporter监控mysql