Linux学习之八——利用变量
一、变量的使用
用$放在变量前面进行使用,例如:
echo $PATH
为了和别的字符隔开,可以用{}和"",例如
echo ${PATH}nic
echo "$PATH"nic
二、变量的定义规则
1. 变量名称只能是英文字母与数字,但是开头字符不能是数字
2. 变量与变量内容以=连结, 等号两边不能直接接空格符,如下所示为错误: 『myname = VBird』或『myname=VBird Tsai』
3. 变量内容若有空格符可使用双引号『"』或单引号『'』将变量内容结合起来,但双引号内的特殊字符如 $ 等,可以保有原本的特性,而单引号内的特殊字符则仅为一般字符 (纯文本)
4. 可用\将特殊符号变成一般字符;
5. 在一串指令中,如果还需要由其他指令提供的信息,可以使用反单引号『`指令`』或 『$(指令)』。`是键盘上方的数字键 1 左边那个键,而不是单引号! 例如想要取得核心版本的设定可以这样:
echo $version`version=$(uname -r)`
6. 通常大写字符为系统默认变量,自行设定变量可以使用小写字符
7. 可以定义数组,用var[index]=content的方式定义
8. 默认定义的是字符串类型,若要定义其他类型需要用declare来定义
declare [-aixr] variable
选项与参数:
-a :将后面名为 variable 的变量定义成为数组 (array) 类型
-i :将后面名为 variable 的发量定义成为整数数字 (integer) 类型
-x :用法与 export 一样,就是将后面的 variable 变成环境发量;
-r :将发量设定成为 readonly 类型,该发量不可被更改内容,也不能 unset
三、定义环境变量
若变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量:
export PATH
四、取消变量
unset paraname
五、常用环境变量
用env可以列出目前shell环境下的所有环境变量
HOME 代表用户的家目录。
SHELL 目前这个环境使用的SHELL 是哪支程序? Linux 默认使用 /bin/bash
HISTSIZE 我们曾经下达过的指令可以被系统记录下来,而记录的『笔数』则是由这个值来设定的。
MAIL 当我们使用 mail 指令收信时,系统会去读取的邮件信箱档案 (mailbox)。
PATH 就是执行文件搜寻的路径
LANG 编码设置
RANDOM 0到32767之间的随机数
六、用set可以观察所有变量
$:本 shell 的 PID
echo $$出现的数字就是你的 PID 号码。
?:上个执行指令的回传值
如果执行正确则回传0
七、 变量的更改
变量设定方式 说明
${变量#关键词} 若变量内容从头开始的数据符合『关键词』,则将符合的最短数据删除
${变量##关键词} 若变量内容从头开始的数据符合『关键词』,则将符合的最长数据删除
${变量%关键词} 若变量内容从尾向前的数据符合『关键词』,则将符合的最短数据删除
${变量%%关键词} 若变量内容从尾向前的数据符合『关键词』,则将符合的最长数据删除
${变量/旧字符串/新字符串} 若变量内容符合『旧字符串』则『第一个旧字符串会被新字符串取代』
${变量//旧字符串/新字符串} 若变量内容符合『旧字符串』则『全部的旧字符串会被新字符串取代』
变量设定方式 str 没有设定 str 为空字符串 str已设定且非空
var=${str-expr} var=expr var= var=$str
var=${str:-expr} var=expr var=expr var=$str
var=${str+expr} var= var=expr var=expr
var=${str:+expr} var= var= var=expr
var=${str=expr} str=expr var=expr str不变 var= str不变 var=$str
var=${str:=expr} str=expr var=expr str=expr var=expr str不变 var=$str
var=${str?expr} expr 输出至 stderr var= var=$str
var=${str:?expr} expr 输出至 stderr expr 输出至 stderr var=$str
Linux学习之八——利用变量的更多相关文章
- Linux学习-Shell的变量功能
什么是变量? 简单的说,就是让某一个特定字串代表不固定的内容. 变量的可变性与方便性 举例来说,我们每个帐号的邮件信箱默认是以 MAIL 这个变量来进行存取的, 当 dmtsai 这个 使用者登陆时, ...
- linux学习之八---Linux进程基础知识
一.linux进程 linux是一个多用户多任务的操作系统. 多用户是指多个用户能够在同一时间使用计算机. 多任务是指linux能够同一时候运行几个任务. 进程简单来说就是执行中的程序,Linux系统 ...
- linux学习之八-Linux本机性能监控
Linux 优化 1.看看磁盘有没有满(根目录有没有满).内存有没有满.CPU有没有满 查看磁盘有没有满,使用df -h 看看磁盘使用情况 查看内存使用 free -m 特别关注swap用了多少 ...
- linux 学习:环境变量设置
一.临时环境变量 临时环境变量,只对当前打开的shell生效,shell关闭后,环境变量失效. 设置方法一: 分两步 MYPARA=hello export MYPARA 设置方法二:一步完成 exp ...
- Linux学习笔记 -- Shell 变量
定义变量 语法: 变量名=值 myVal= 需要注意一下变量明德规则: 首个字符必须为字母(a-z,A-Z). 中间不能有空格,可以使用下划线(_). 不能使用标点符号. 不能使用bash里的关键字( ...
- Linux学习之八-配置FTP连接Linux服务器
配置ftp连接Linux服务器 通过配置ftp服务器,可以实现局域网内共享文件,甚至不同用户具有不同权限,需要的工具有Windows平台ftp客户端FileZilla(免费开源) 下载地址:https ...
- Linux学习之八--关闭firewall防火墙安装iptables并配置
CentOS 7之后默认使用的是firewall作为防火墙,这里改为iptables防火墙,并开启80端口.3306端口. 1.关闭firewall: systemctl stop firewalld ...
- Linux学习之管道符、重定向、通配符、转义符、环境变量
Linux学习之管道符.重定向.通配符.转义符.环境变量 1. 输入输出重定向 输入重定向是指把文件导入命令中. 输出重定向是指把原本要输出到屏幕的数据信息写入指定文件中. a 标准输入重定向(STD ...
- Linux学习Day4:管道符、重定向与环境变量
仅仅是学习Linux系统的命令还不够,只有把多个命令按照自己想要的方式进行组合使用,才能提高工作效率.今天的内容主要是关于如何把命令组合在一起使用,使得输入的命令更准确.更高效,也为接下来的Shell ...
随机推荐
- MyCat:在.NET Core中使用MyCat
http://www.cnblogs.com/yuangang/p/5830716.html
- p++ ++p
1.P++是先使用这个变量,使用完了再加1,你的例子就是,先输出,再加一++P是先加一,在使用变量 eg: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...
- PNG图片去除额外透明区域
bitmapdata.getColorBoundsRect(0xFF000000,0x00000000,false) http://www.cnblogs.com/shinings/archive/2 ...
- SQL null值 查询null
select * from emp;
- Codeforce Round #210 Div2
A:对角线为k其他为0 B:利用两个相邻的数一定gcd为1和1与任何数gcd为1错k个位就行了 C:不会做操蛋,好像是因为上一层的始终小于下一层的 好吧C又研究了一下,是个贪心题,不符合的情况先科不考 ...
- php setcookie(name, value, expires, path, domain, secure) 参数详解
setcookie() 定义一个和其余的 HTTP 标头一起发送的 cookie.和其它标头一样,cookie 必须在脚本的任何其它输出之前发送(这是协议限制).这 需要将本函数的调用放到任何输出之前 ...
- paper 87:行人检测资源(下)代码数据【转载,以后使用】
这是行人检测相关资源的第二部分:源码和数据集.考虑到实际应用的实时性要求,源码主要是C/C++的.源码和数据集的网址,经过测试都可访问,并注明了这些网址最后更新的日期,供学习和研究进行参考.(欢迎补充 ...
- Bootstrap布局设计
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 夺命雷公狗---Thinkphp----11之管理员的增删改查的完善
由于我们刚才的帐号还没通过任何的验证就可以直接进入数据库了,这当然不是不合理的交互逻辑,所以我们要修改下,让他变得3合理一些, 所以我们还是要按照套路来修改几处即可解决问题: 首先修改下添加的控制器: ...
- logging
#coding=utf8 import sys, logging logging.basicConfig(level=logging.INFO, forma ...