第三章:shell变量知识进阶
特殊变量:
位置变量大于9的时候,需要加上(),例如$(10)
$*获取脚本的所有参数,如果不加""和$@是一样的效果,如果加上"",则表示所有参数组成一个字符串
$0代表脚本本身,如果脚本加路径,那$0的结果也是加上路径的
dirname		获取脚本路径 	dirname /root/test.sh		结果:/root
basebame	获取脚本名称	basename /root/test.sh 		结果:test.sh
$$			获取当前shell的进程号	,防止重复执行,可以通过此变量校验
$_			获取上一个脚本的最后一个参数
echo -n 不换行输出内容
echo -e 解析转义字符\n换行	\t制表符 	\v纵向制表符	\b退1格 \r回车
eval args	当脚本执行到eval的时候,会把args的内容当成脚本执行
exec < /tmp/test.txt while read line ;do echo $line ;done  exec读取文件内容提供给read读取
shift	使脚本的参数向左移一位
计算字符串的长度
1、expr length "asdas"
2、echo "asdsa"|awk '{print length ($0)}'
3、echo "asdsa"|wc -length
4、a="asdsa" echo ${#a}
变量自带的计算字符长度是效率最好的,包括其他的也是一样的,能用自带的就用自带的
time 命令可以用来计算命令执行的时间(第一次知道)
for a in `echo "i am odlboy linux,welconm our tranining."|sed   's/[[:punct:]]/ /g'` ;do if [ ${#a} -lt 6 ] ;then echo $a ;fi ;done打印字符串中小于6的单词
a="123456" ;echo  ${a:2:3}截取第二个字符向后3个字符  等于a="123456"; echo $a|cut -c 3-5
变量内容删除和替换
参考https://blog.csdn.net/qq_31567335/article/details/88985071
a="asdasdasdlkaldk"; echo ${a#a*d}从开头开始删除最短匹配a*d的内容
a="123 456 789 456" echo ${a//456/000} 变量替换,/替换第一个  //替换所有
shell特殊扩展变量:
test='' echo ${test:-0}如果变量test为空则返回0(还是比较实用的)
test='' echo ${test:=0}如果变量test为空则将变量的值定义为0,和上一个的区别,但是不适用于位置变量和特殊变量(这个更实用)
test='' echo $(test:?not defined) 如果test为空则返回not defined ,多用于测试变量的值是否为空
test=${test2:+value} 如果这里用来判断test2的值是否为空,如果为空,怎返回空,如果有值,怎返回value,用来测试变量是否有值
总结:这些东西理解都很烧脑,他是怎么发明的???也许是我理解能力差?-?
第三章:shell变量知识进阶的更多相关文章
- Shell变量知识进阶
		
一,Shell中特殊且重要的变量 $0结合dirname和basename分别取出脚本名称和脚本路径 [root@192-168-3-163 scripts]# cat test.sh #!/bin/ ...
 - C语言探索之旅】 第一部分第四课第三章:变量的世界之显示变量内容
		
内容简介 1.课程大纲 2.第一部分第四课第三章:变量的世界之显示变量内容 3.第一部分第五课预告:基本运算 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用 ...
 - Linux Shell系列教程之(三)Shell变量
		
本文是Linux Shell系列教程的第(三)篇,更多shell教程请看:Linux Shell系列教程 Shell作为一种高级的脚本类语言,也是支持自定义变量的.今天就为大家介绍下Shell中的变量 ...
 - SHELL (3) —— 变量知识进阶和实践
		
摘自:Oldboy Linux运维——SHELL编程实战 SHELL中特殊切重要的变量 位置变量 作用说明 $0 获取当前执行的Shell脚本的文件名,如果执行脚本包含了路径,那么就包括脚本路径 $n ...
 - 第三章 Js变量的作用域和匿名函数
		
3.1 先看下面的事例: ①var temp=0; ②temp=0; 当js解析器检测到①这种情况的时候,解析器会为这个变量开辟一个内存空间,如果前面已经存在这个变量,就会把这个变量覆盖掉. 当解析器 ...
 - 三、Shell变量类型和运算符
		
一.Shell变量的应用 1.Shell变量的种类 ·用户自定义变量:由用户自己定义.修改和使用 ·预定义变量:Bash预定义的特殊变量,不能直接修改 ·位置变量:通过命令行给 ...
 - MongDB篇,第三章:数据库知识3
		
MongDB 数据库知识3 修改器 $inc 对某个域的值进行加减修改 $mul 对某个域的值进行乘法修改 $min 如果筛选的文档指定的值小于min则不修改,如果大于min 给定的值则修改为m ...
 - shell变量赋值进阶
		
首先,要理解shell中变量的3种赋值情况: unset 例子. unset a 空字符串, null 例子. a='' 非空,即不是unset,并且不是空字符串 例子: a=1 or a=b等 然后 ...
 - MySQL篇,第三章:数据库知识3
		
MySQL 数据库 3 索引 1.普通索引(MUL) 2.唯一索引(UNI) 3.主键索引(PRI) 1.使用规则 1.一个表中只能有一个主键(primary)字段 2.对应字段的值不允许重复 ...
 
随机推荐
- 【codeforces】Educational Codeforces Round 80 D. Minimax Problem——二分+二进制处理
			
题目链接 题目大意 有n个维度为m的向量,取其中两个进行合并,合并时每个维度取两者之间的较大者,得到的新的向量中,维度值最小者最大为多少 分析 首先最需要注意的是m的取值,m最大只有8 那么我们可以二 ...
 - 网维大师重建B盘方法
			
[操作步骤]操作前先熟悉步骤,以免手忙脚乱.请在人少的时候操作. 1.打开网维大师安装目录,进入barserver\找到barserver.ini打开,找到[PlatformUpdate]字段下的up ...
 - ElasticSearch 9200  9300 端口
			
9300端口: ES节点之间通讯使用 9200端口: ES节点 和 外部 通讯使用 9300是TCP协议端口号,ES集群之间通讯端口号 9200端口号,暴露ES RESTful接口端口号
 - Tail Call
			
一.什么是尾调用 尾调用(Tail Call)是函数式编程的一个重要概念. 一个函数里的最后一个动作是返回一个函数的调用结果,用简单的一句话描述就是"在函数的最后一步调用函数". ...
 - iOS pch
			
Xcode6 之前会在 Supporting Files 文件夹下自动生成一个"工程名-PrefixHeader.pch"的预编译头文件,pch 头文件的内容能被项目中的其他所有源 ...
 - C#算法实现获取树的高度
			
我们知道,树类型作为数据结构中的重要一员,树的很多实现都是来自递归.本文想要实现的就是在桌面客户端项目开发中,经常用到的树结构(.Net平台下有个控件为TreeView).事实上,我们可能因业务需求自 ...
 - java模拟栈的操作
			
栈是一种有序列表,可以使用数组的结构来储存栈的数据内容 思路 1. 创建一个栈类StackArray 2. 定义一个top来模拟栈顶,初始化为-1 3. 入栈: 当有数据加入到栈的时候 top++ s ...
 - 30款Django 常用的软件包
			
30款Django 常用的软件包 Django是一款高级的Python Web框架,可以帮助开发者快速创建web应用.我们这里整理了30款Django开发中常用的软件包,学会使用它们可以节省大量开发时 ...
 - [vios1023]维多利亚的舞会3<强联通分量tarjan>
			
题目链接:https://vijos.org/p/1023 最近在练强联通分量,当然学的是tarjan算法 而这一道题虽然打着难度为3,且是tarjan算法的裸题出没在vijos里面 但其实并不是纯粹 ...
 - 使用kibana操作elasticsearch7.x    教程
			
由于elasticsearch7.x取消了type(类型的概念)对应数据库表的概念 添加一个索引 PUT 索引名 { "settings": { "number_of_s ...