您的位置:首页 > 运维架构 > Shell

模式匹配运算符–Shell

2015-07-17 14:57 441 查看
变量相关的命令export, readonlyexport:用于修改或打印变量readonly:设置变量为只读 替换运算符${var:-word}     如果var存在且非null,返回它的值;否则返回word${var:=word}   如果var存在且非null,返回它的值;否则将word赋值给var,并返回var的值 ${var:?word}    如果var存在且非null,返回它的值;否则显示var:word${var:+word}     如果var存在且非null,返回word;否则返回null 注:冒号(:)可省略 模式匹配运算符${var#pattern}    匹配前缀(最小匹配),并返回余下内容${var##pattern}    匹配前缀(最大匹配),并返回余下内容${var%pattern}    匹配结尾(最小匹配),并返回余下内容${var%%pattern}    匹配结尾(最大匹配),并返回余下内容 注:pattern为正则表达式匹配 算术运算符Shell的算术运算符基本上与C一致,就不多说了。算术运算符可以放置在$((...))里面,也就是内嵌算术,也称为算术展开。譬如 echo $((2>1)) 打印结果为1。(1表示真,0表示假) 特殊变量$#    表示变量的个数,常用于循环$@    当前命令行所有参数。置于双引号中,表示个别参数$*    当前命令行所有参数。置于双引号中,表示将命令行所有参数当初一个单独参数$-(连字号)    在引用数给予Shell的选项$?    表示上一个命令退出的状态$$    表示当前进程编号$0    表示当前程序名称$!    表示最近一个后台命令的进程编号$HOME    表示当前用户根目录$IFS    表示内部的字段分隔符$LANG    当前locale默认名称$PATH    环境变量$PPID    父进程编号$PWD    当前工作目录 $?的参考值0    成功退出>0    退出失败1-125    命令退出失败,失败返回的相关值由程序定义(譬如,程序内退出只执行 exit 2,则返回为2)126    命令找到了,但无法执行127    命令找不到>128    命令因受到信号而死亡
-----------------------------------------我是分割线---------------------------------------
Var=/home/firefox/MyProgram/fire.login.name
${Variable#pattern}:如果模式匹配于变量值的开头处,则删除匹配的最短部分,并且返回剩下的部分例子:
[fire]$ echo ${Var#*/}[fire]$ home/firefox/MyProgram/fire.login.name[fire]$ echo ${Var#/*/}[fire]$ firefox/MyProgram/fire.login.name[fire]$ echo ${Var#*.}[fire]$ login.name
${Variable##pattern}:如果模式匹配于变量值的开头处,则删除匹配的最长部分,并且返回剩下的部分例子
[fire]$ echo ${Var##*/}[fire]$ fire.login.name[fire]$ echo ${Var##/*/}[fire]$ fire.login.name[fire]$ echo ${Var##*.}[fire]$ name
${Variable%pattern}:如果模式匹配于变量值的结尾处,则删除匹配的最短部分,并且返回剩下的部分例子
[fire]$ echo ${Var%/*}[fire]$ /home/firefox/MyProgram[fire]$ echo ${Var%.*}[fire]$ /home/firefox/MyProgram/fire.login
${Variable%%pattern}:如果模式匹配于变量值的结尾处,则删除匹配的最长部分,并且返回剩下的部分例子
[fire]$ echo ${Var%%/*}[fire]$[fire]$ echo ${Var%%.*}[fire]$ /home/firefox/MyProgram/fire
${#Variable}:返回$Variable值里的字符长度
[fire]$ echo ${#Variable}[fire]$ 39
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: