特殊变量:
位置变量大于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变量知识进阶的更多相关文章

  1. Shell变量知识进阶

    一,Shell中特殊且重要的变量 $0结合dirname和basename分别取出脚本名称和脚本路径 [root@192-168-3-163 scripts]# cat test.sh #!/bin/ ...

  2. C语言探索之旅】 第一部分第四课第三章:变量的世界之显示变量内容

    内容简介 1.课程大纲 2.第一部分第四课第三章:变量的世界之显示变量内容 3.第一部分第五课预告:基本运算 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用 ...

  3. Linux Shell系列教程之(三)Shell变量

    本文是Linux Shell系列教程的第(三)篇,更多shell教程请看:Linux Shell系列教程 Shell作为一种高级的脚本类语言,也是支持自定义变量的.今天就为大家介绍下Shell中的变量 ...

  4. SHELL (3) —— 变量知识进阶和实践

    摘自:Oldboy Linux运维——SHELL编程实战 SHELL中特殊切重要的变量 位置变量 作用说明 $0 获取当前执行的Shell脚本的文件名,如果执行脚本包含了路径,那么就包括脚本路径 $n ...

  5. 第三章 Js变量的作用域和匿名函数

    3.1 先看下面的事例: ①var temp=0; ②temp=0; 当js解析器检测到①这种情况的时候,解析器会为这个变量开辟一个内存空间,如果前面已经存在这个变量,就会把这个变量覆盖掉. 当解析器 ...

  6. 三、Shell变量类型和运算符

    一.Shell变量的应用 1.Shell变量的种类     ·用户自定义变量:由用户自己定义.修改和使用     ·预定义变量:Bash预定义的特殊变量,不能直接修改     ·位置变量:通过命令行给 ...

  7. MongDB篇,第三章:数据库知识3

    MongDB    数据库知识3 修改器 $inc 对某个域的值进行加减修改 $mul 对某个域的值进行乘法修改 $min 如果筛选的文档指定的值小于min则不修改,如果大于min 给定的值则修改为m ...

  8. shell变量赋值进阶

    首先,要理解shell中变量的3种赋值情况: unset 例子. unset a 空字符串, null 例子. a='' 非空,即不是unset,并且不是空字符串 例子: a=1 or a=b等 然后 ...

  9. MySQL篇,第三章:数据库知识3

    MySQL 数据库 3 索引 1.普通索引(MUL)   2.唯一索引(UNI)   3.主键索引(PRI) 1.使用规则 1.一个表中只能有一个主键(primary)字段 2.对应字段的值不允许重复 ...

随机推荐

  1. 基于树莓派与YOLOv3模型的人体目标检测小车(一)

    项目介绍: 本科毕业选的深度学习的毕设,一开始只是学习了一下YOLOv3模型, 按照作者的指示在官网上下载下来权重,配好环境跑出来Demo,后来想着只是跑模型会不会太单薄,于是想了能不能做出来个比较实 ...

  2. Java基础语法(6)-注释

    title: Java基础语法(6)-注释 blog: CSDN data: Java学习路线及视频 用于注解说明解释程序的文字就是注释. 提高了代码的阅读性:调试程序的重要方法. 注释是一个程序员必 ...

  3. Mock测试,结合Fiddler轻松搞定不同场景

    在平时测试过程中,总会遇到一些比较难构造的场景.比如不同平台间的同步,异常场景的构造.遇到难构造的场景时,就可以引用Mock来进行单元测试.简言之:mock测试就是在测试过程中,对于某些不容易构造或者 ...

  4. TensorFlow 安装官方教程:Ubuntu 安装,Mac OS X 安装,Windows 安装

    从我的使用体验来看  Ubuntu 是最好的, Mac 没有显卡,后期跑大项目比较鸡肋,Windows 安装各种依赖各种坑.Ubuntu 安装 TensorFlow 方便,后面安装  TensorFl ...

  5. 《自拍教程52》Python_adb运行Shell脚本

    Android作为一款Linux终端,肯定是支持.sh后缀的Shell脚本的运行的, 有时候测试环境准备或者长时间截取复杂的日志等,开发会给到一些Shell脚本. Shell脚本的执行的优势: 快捷高 ...

  6. linux部署win服务 dotnet mono jexus

    .Net Core (dotnet C#应用) dotnet 可以用在linux上运行 C#应用 适用于 SSO 统一身份认证系统 # 安装依赖 yum install libunwind yum i ...

  7. B. Food Buying Round #617(递归 + 模拟)

    B. Food Buying time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  8. HDU-1421-搬寝室(01背包改编版)

    搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太 ...

  9. 《Three.js 入门指南》3.0 - 代码构建的最基本结构。

    3.0 代码构建的最基本结构 说明: 我们必需首先知道,Three.js 的一些入门级概念: 我们需要知道,OpenGL 是一套三维实现的标准,为什么说是标准,因为它是跨平台,跨语言的.甚至CAD以及 ...

  10. 1066 Root of AVL Tree (25分)(AVL树的实现)

    An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...