Linux学习高级篇(二)
来源:互联网 发布:java前后端分离 vue 编辑:程序博客网 时间:2024/05/16 06:19
一、Bash变量
1、用户自定义变量
1.1何为变量?
变量是计算机内存的单元,其中存放的值可以改变。当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中。每个变量有一个名字,所以很容易引用它。使用变量可以保存有用信息,使系统获知用户相关设置,变量也可以用于保存暂时信息。
1.2变量的设置规则
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。
- 在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必修指定变量类型为数值型 。
- 变量用等号连接值,等号左右两侧不能有空格。
- 变量的值如果有空格,需要使用单引号或双引号包括。
- 在变量的值中,可以使用“\”转义符 。
- 如果需要增加变量的值,那么可以进行变量值的叠加。不过变量需要用双引号包含“$变量名”或用${变量名}包含
- 如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令
- 环境变量名建议大写,便于区分 。
1.3变量的分类
- 用户自定义变量
- 环境变量:该变量中主要保存的是和系统操作环境相关的数据。
- 位置参数变量:这种变量主要是用来向脚本中传递参数或者数据的,变量名不能自定义,变量的作用是固定的。
- 预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量的作用也是固定的。
2、环境变量
2.1何为环境变量?
用户自定义变量只在当前的Shell中生效,而环境变量会在当前Shell和这个Shell的所有子Shell当中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的Shell中生效 。
2.2设置环境变量
声明变量:export 变量名=变量值
查询变量:env
删除变量:unset
2.3PS1命令
该命令用于定义系统提示符的变量
\d:显示日期,格式为“星期 月 日”
\h:显示简写主机名。如默认主机名“localhost”
\t:显示24小时制时间,格式为“HH:MM:SS”
\T:显示12小时制时间,格式为“HH:MM:SS”
\A:显示24小时制时间,格式为“HH:MM”
\u:显示当前用户名
\w:显示当前所在目录的完整名称
\W:显示当前所在目录的最后一个目录
\#:执行的第几个命令
\$:提示符。如果是root用户会显示提示符为“#”,如果是普通用户会显示提示符为“$
\h:显示简写主机名。如默认主机名“localhost”
\t:显示24小时制时间,格式为“HH:MM:SS”
\T:显示12小时制时间,格式为“HH:MM:SS”
\A:显示24小时制时间,格式为“HH:MM”
\u:显示当前用户名
\w:显示当前所在目录的完整名称
\W:显示当前所在目录的最后一个目录
\#:执行的第几个命令
\$:提示符。如果是root用户会显示提示符为“#”,如果是普通用户会显示提示符为“$
例如:
[root@localhost ~]# PS1='[\u@\t \w]\$ '
[root@04:50:08 /usr/local/src]#PS1='[\u@\@ \h \# \W]\$‘
[root@04:50:08 /usr/local/src]#PS1='[\u@\@ \h \# \W]\$‘
[root@04:53 上午localhost 31 src]#PS1='[\u@\h \W]\$ '
3、位置参数变量
位置参数变量 作 用$nn为数字,$0代表命令本身,$1-$9代表第一
到第九个参数,十以上的参数需要用大括号
包含,如${10}.$* 这个变量代表命令行中所有的参数,$*把所
有的参数看成一个整体$@ 这个变量也代表命令行中所有的参数,不过
$@把每个参数区分对待$# 这个变量代表命令行中所有参数的个数
到第九个参数,十以上的参数需要用大括号
包含,如${10}.$* 这个变量代表命令行中所有的参数,$*把所
有的参数看成一个整体$@ 这个变量也代表命令行中所有的参数,不过
$@把每个参数区分对待$# 这个变量代表命令行中所有参数的个数
4、预定义变量
预定义变量 作 用$?最后一次执行的命令的返回状态。如果这个
量的值为0,证明上一个命令正确执行;如
这个变量的值为非0(具体是哪个数,由命
自己来决定),则证明上一个命令执行不正
了。$$ 当前进程的进程号(PID)$! 后台运行的最后一个进程的进程号(PID)
量的值为0,证明上一个命令正确执行;如
这个变量的值为非0(具体是哪个数,由命
自己来决定),则证明上一个命令执行不正
了。$$ 当前进程的进程号(PID)$! 后台运行的最后一个进程的进程号(PID)
阅读全文
0 0
- Linux学习高级篇(二)
- Linux学习高级篇(二)
- linux驱动学习(二) Makefile高级
- linux驱动学习(二) Makefile高级
- linux驱动学习(二) Makefile高级
- Linux学习高级篇(一)
- Linux学习高级篇(三)
- Linux学习高级篇(四)
- Linux学习高级篇(五)
- Linux学习高级篇(六)
- Linux学习高级篇(一)
- Linux学习高级篇(三)
- Linux学习高级篇(四)
- Linux学习高级篇(六)
- Linux学习高级篇(五)
- 【linux高级环境编程学习笔记二】信号通信
- Linux Shell高级技巧(二)
- Linux Shell高级技巧(二)
- 离散傅里叶变换
- 51nod 1453 抽彩球 (思维+排列组合)
- Groovy的JavaBean
- java 多态
- 5-15 计算圆周率 (15分)
- Linux学习高级篇(二)
- LeetCode 80. Remove Duplicates from Sorted Array II
- maven项目编译后在classes文件夹下没有编译出mybatis的xml文件的解决方案
- 队列和栈(1)
- iOS 分析iOS设备导出的崩溃信息
- JSP笔记
- mysql常用查询
- C++中的几个关键字(static、const、#define、inline、sizeof与strlen、指针与引用、new与malloc)
- Qt重画标题栏