鸟哥的linux私房菜学习笔记《二十一》变量及环境变量详解
来源:互联网 发布:猎豹浏览器精简优化版 编辑:程序博客网 时间:2024/06/06 04:32
显示变量
root@Ubuntu:~# echo $变量名 或者 ${变量名}root@Ubuntu:~# echo $PATHroot@Ubuntu:~# echo ${PATH}root@Ubuntu:~# echo $HOMEroot@Ubuntu:~# echo ${HOME}
设置变量
root@Ubuntu:~# echo $myname# 为空,下面设置:root@Ubuntu:~# myname=kevinroot@Ubuntu:~# echo $myname# 设置完成
变量的规则:
字符串需要用单/双引号括起来
用转义字符可以将特殊字符转义
为变量增加内容:”PATH”=”$PATH”:/home/bin”
单引号`表示先执行,然后取执行结果
设置成环境变量:export 变量名
取消环境变量:unset 变量名
通常大写表示环境变量,小写是普通变量# 在PATH变量中累加/home/dmtsai/bin:(以下都可以)root@Ubuntu:~# PATH=$PATH:/home/dmtsai/binroot@Ubuntu:~# PATH="$PATH":/home/dmtsai/binroot@Ubuntu:~# PATH=${PATH}:/home/dmtsai/bin# 将name内容多出来yes:($可以理解为取变量的内容)root@Ubuntu:~# name=$name"yesroot@Ubuntu:~# name=${name}yes# 设置环境变量:root@Ubuntu:~# export name# 取消环境变量:root@Ubuntu:~# unset name# 进入内核的子进程(先执行uname -r命令,后执行cd命令)root@Ubuntu:~# cd /lib/modules/`uname -r`/kernelroot@Ubuntu:~# cd /lib/modules/$(uname -r)/kernel# 单引号只识别为字符,双引号可识别特殊符号root@Ubuntu:~# name=kevinroot@Ubuntu:~# echo $namekevinroot@Ubuntu:~# myname="$name its me"root@Ubuntu:~# echo $mynamekevin its meroot@Ubuntu:~# name='$name its me'root@Ubuntu:~# echo $myname$name its meroot@Ubuntu:~#
env:查看环境变量与常见环境变量说明
[root@CentOS ~]# env
环境变量随机数RANDOM其实是/dev/random这个文件,会随机产生0~32767之间的数
[root@CentOS ~]# declare -i number=$RANDOM*10/32768 [root@CentOS ~]# echo $number
set:查看所有变量(含有环境变量和自定义变量)
[root@CentOS ~]# setHISTFILE=/root/.bash_history# 历史命令记录的配置文件HISTFILESIZE=1000# 保存的历史命令的最大数量HISTSIZE=1000# 目前环境下可记录的历史命令数量MAILCHECK=60# 60秒扫描一次邮箱PS1='[\u@\h \W]\$ '# 命令提示符的前面PS2='> '# 如果使用转义字符,第二行以后的字符也会显示出来$# 目前这个shell所使用的的PID?# 刚才执行完吗,命令的回传码
PS1:(提示符的设置)
# 在set里# 查询相关说明:root@CentOS ~]# man bash\d:显示星期月日\H:完整主机名\h:取主机名第一个小数点前面的\t:显示时间,24小时制\T:显示时间,12小时制
变量内容的删除、替换
变量内容删除:# 从前往后删除PATH中的符合 “/*kerberos/bin:” 这个条件的最短字符串[root@CentOS ~]# echo ${PATH#/*kerberos/bin:}# 从前往后删除PATH中的符合 “/*kerberos/bin:” 这个条件的最长字符串[root@CentOS ~]# echo ${PATH##/*kerberos/bin:}# 详解:${PATH##/*kerberos/bin:}:匹配“/*kerberos/bin:”${。。。#。。。}:从前往后删除符合条件的最短项${。。。##。。。}:从前往后删除符合条件的最长项
# 从后往前删除PATH中的符合 “:*bin” 这个条件的最短字符串[root@CentOS ~]# echo ${PATH%:*bin}# 从后往前删除PATH中的符合 “:*bin” 这个条件的最长字符串[root@CentOS ~]# echo ${PATH%%:*bin}# 详解:${PATH%%:*bin}:匹配 “:*bin”${。。。%。。。}:从后往前删除符合条件的最短项${。。。%%。。。}:从后往前后删除符合条件的最短项
例子:
# 删除MAIL的/var/spool/mail/root中,“root”前的# 从前往后匹配“/*/”最长为“/var/spool/mail/”[root@CentOS ~]# echo ${MAIL##/*/}# 删除MAIL的/var/spool/mail/root中的“/root”# 从后往前匹配“/*”最短为“/root”[root@CentOS ~]# echo ${MAIL%/*}
命令内容替换:
# 将PATH中第一个“sbin”替换为“SBIN”:[root@CentOS ~]# echo ${PATH/sbin/SBIN}# 将PATH中所有“sbin”替换为“SBIN”:[root@CentOS ~]# echo ${PATH//sbin/SBIN}# 详解:${PATH/sbin/SBIN}:匹配“sbin”${PATH/。。。/。。。}:将第一个符合匹配条件的内容替换${PATH//。。。/。。。}:将所有符合匹配条件的内容替换
变量的测试及替换:
# 如果oldname存在值,则newname=oldname,如果oldname不存在值,则newname=root[root@CentOS ~]# newname=${oldname-root}详解:newname${oldname-content}:匹配oldname。。。${。。。-。。。}:存在就赋值旧的,不存在就赋值新的
# 如果oldname存在值,则newname=oldname,如果oldname不存在值或为空字符串,则newname=root[root@CentOS ~]# newname=${oldname:-root}详解:newname${oldname:-content}:匹配oldname。。。${。。。:-。。。}:存在就赋值旧的,不存在或为空就赋值新的
# 如果oldname存在值,则newname=oldname,如果oldname不存在值,则newname=root并且oldname=root[root@CentOS ~]# newname=${oldname=root}详解:newname${oldname=content}:匹配oldname。。。${。。。=。。。}:存在就赋值旧的,不存在就都赋值新的
# 如果oldname存在值,则newname=oldname,如果oldname不存在值,则输出错误消息“root”[root@CentOS ~]# newname=${oldname?root}详解:newname${oldname?content}:匹配oldname,错误消息是content。。。${。。。=。。。}:存在就赋值旧的,不存在就输出错误消息
0 0
- 鸟哥的linux私房菜学习笔记《二十一》变量及环境变量详解
- 【鸟哥的linux私房菜-学习笔记】Bash shell的变量功能及操作环境
- 《鸟哥的linux私房菜》学习笔记二
- 《鸟哥的Linux私房菜》学习笔记(二)
- 鸟哥的linux私房菜学习笔记十一 ,命令权限
- 鸟哥的linux私房菜学习笔记《十一》磁盘与文件系统(block与inode)
- 鸟哥的linux私房菜学习笔记《八》环境变量$PATH
- Linux鸟哥私房菜学习笔记(二)
- 鸟哥的linux私房菜学习笔记《二十二》bash shell的操作环境
- 鸟哥的Linux私房菜笔记之二
- 鸟哥的Linux私房菜笔记(二)
- 鸟哥的Linux私房菜笔记二
- 鸟哥的私房菜学习笔记二
- linux学习笔记鸟哥的私房菜(二)-文件与目录管理
- 鸟哥的linux私房菜学习笔记《二》命令帮助
- 鸟哥的linux私房菜学习笔记《二十》bash简介
- 鸟哥的linux私房菜学习笔记《二十四》正则表达式
- 鸟哥的linux私房菜学习笔记《二十五》账号管理
- Oracle 10gR2的client是无法登陆Oracle 12.2数据库
- Unity3D中手动添加Button的各类触发器
- 不重复订单号生成的方法
- Cadence Allegro学习之板框创建与网表导入与器件布局
- python 建造者模式(实现,特点)
- 鸟哥的linux私房菜学习笔记《二十一》变量及环境变量详解
- spring参数校验,form表单形式,以及http接口形式
- pat 1042. Shuffling Machine (20)
- 《ACM程序设计》书中题目--problem u
- 转载 Unity GameCenter 接入
- 【数据分析】图书馆数据-03直方图展示借书数量与借书人数之间的关系
- java网络编程____httpclient工具类操作
- 在父页面中局部刷新子iframe
- 前端进阶---from表单---