加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

深入理解bash及字符串的处理

发布时间:2020-12-15 09:15:43 所属栏目:安全 来源:网络整理
导读:1、bash的内置变量: PATH PS1 HOSTNAME UID HISTFILE HISTEILESIZE HISTCONTROL $BASH:bash二进制程序文件的路径 $BASH_SUBSHELL:子shell的层次 $BASH_VERSION $EDITOR:默认编辑器 $EUID:有效的用户ID $UID:当前用户的ID号 $FUNCNAME:当前函数的名称 $GROUP

1、bash的内置变量:

PATH PS1 HOSTNAME UID HISTFILE HISTEILESIZE HISTCONTROL

$BASH:bash二进制程序文件的路径

$BASH_SUBSHELL:子shell的层次

$BASH_VERSION

$EDITOR:默认编辑器

$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别嵌入的深度


2、特殊变量:

$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


信号捕捉用于:在中途中止时做一些清理操作

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读