模式匹配运算符–Shell

604 篇文章 8 订阅
579 篇文章 5 订阅

变量相关的命令
export, readonly
export:用于修改或打印变量
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值