博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Linux]Shell的运算符和特殊变量
阅读量:6937 次
发布时间:2019-06-27

本文共 1187 字,大约阅读时间需要 3 分钟。

说起Shell脚本,免不了用变量。特别是对于这种一堆符号表示变量的语言来说,你不了解一下相关变量的本意,根本无从下手。譬如写个循环遍历,$#就起了好大作用。所以还是有必要记录一下,也是对学习的一个笔记,方便以后查找。

另外有一些运算符也相当有意思。

 

//---------------------分割线,下文为笔记内容-------------------------

变量相关的命令
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    命令因受到信号而死亡

 本文转自 Ron Ngai 博客园博客,原文链接:http://www.cnblogs.com/rond/p/3543367.html  ,如需转载请自行联系原作者

你可能感兴趣的文章
使用sql追踪
查看>>
5: EL 表达式小结
查看>>
[数组]数组元素分割
查看>>
今日学习20190427
查看>>
HIbernate小结
查看>>
iOS开发-数据存储
查看>>
iOSUI-UIScrollView属性,方法大全
查看>>
2015大连华信校园招聘面试题--堆栈
查看>>
常用架构选型
查看>>
POJ 2533 Longest Ordered Subsequence
查看>>
机器学习入门-提取文章的主题词 1.jieba.analyse.extract_tags(提取主题词)
查看>>
一、javaSE (五)方法和数组知识
查看>>
关于如何在虚拟机里访问到自己的本机里的本地项目
查看>>
浅谈对xmpp的理解及应用
查看>>
postgresql备份导入数据库小记
查看>>
翻译随笔
查看>>
java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求,...
查看>>
nfs挂载
查看>>
Dubbo坑
查看>>
Git
查看>>