一、bash的内置变量:shell
PATH PS1 HOSTNAME UID HISTFILE HISTEILESIZE HISTCONTROL编程
$BASH:bash二进制程序文件的路径bash
$BASH_SUBSHELL:子shell的层次架构
$BASH_VERSION编辑器
$EDITOR:默认编辑器ide
$EUID:有效的用户ID
函数
$UID:当前用户的ID号命令行
$FUNCNAME:当前函数的名称
进程
$GROUPS:当前用户显示的组
字符串
$HOME:当前用户的家目录
$HOSTTYPE:主机架构类型,用来识别系统硬件
$MACHTYPE:平台类型,系统平台依赖的编译平台
$OSTYPE:OS系统类型
$IFS:输入数据时的字段分隔符,默认是空白符(空格、制表符、换行符)
$OLDPWD:上次使用的目录
$PWD:当前目录
$PPID:父进程
$PS1:主提示符
$PS2:第二提示符,主要用于补充彻底命令输入时的提示符
$PS3:第三提示符,用于select命令中
$PS4:第四提示符,当使用-X选项调用脚本时,显示的提示符,默认为+号
$SECONDS:当前脚本已经运行的时长
$SHLVL:shell的级别。bash别嵌入的深度
二、特殊变量:
$0:脚本名称自身
$1,$2。。。。:位置参数
$#:命令行参数个数
$*:全部的参数,被看成一个字符串
$@:全部的参数,每一个参数都是一个独立的字符串
$-:传递给脚本的标记
$!:运行于后台的最后一个做业的PID
$_:上一条命令的最后一个参数的值
$?:上一条命令状态的返回值
$$:脚本自身的PID
操做变量:
${#var} :返回变量中字符串的长度
${var}:变量引用
${var:-default}:若是var没有声明或者为空,则返回default字串,不然返回var自身的值
${var:+default}:若是var没有声明或者为空,则返回空字串,不然返回default的值
${var:=default}:若是var没有声明或者为空,则返回default字串,而且将default赋值给var,不然返回var自身的值
${var:?default}:若是var没有声明或者为空,则以default为错误信息返回,不然
zb 返回var自身的值
字串消除
${var#*word}:查找var中自左而右第一个被word匹配到的串,并将此串及向左的全部内容都删除
${var##*word}:查找var中自左而右最后一次被word匹配到的串,并将此串及向左的全部内容都删除
${var%word*}:查找var中自右而左第一个被word匹配到的串,并将此串及向右的全部内容都删除
${var%%word*}:查找var中自右而左最后一次被word匹配到的串,并将此串及向右的全部内容都删除
取字串:
${var:pos}:偏移pos个字符,取余下的字串
name=jerry,${name:2}结果为rry
${var:pos:num}偏移pos个字符,取num个字符长度的字串
name='hello world' ${name:2:5}结果为llo w
字串替换
${var/Pattern/Replaceplacement} :以Pattern为模式匹配var中的字串,将第一次匹配到的替换为Replaceplacement
${var// Pattern/Replaceplacement} :以Pattern为模式匹配var中的字串,将所有匹配到的替换为Replaceplacement6
声明变量:
declare
-i:×××
-a:数值
-x:环境变量
-r:只读变量,不能撤销,不能修改,至关于readonly
-f:声明函数
bash编程的信号捕获(KILL没法捕捉)
trap 陷阱
#查看信号
kill -l
#使用方法,命令加信号
trap ‘command’ signal
信号捕捉用于:在中途停止时作一些清理操做