1、单引号 、双引号、反引号的区别

单引号:忽略所有特殊字符

双引号:忽略大部分特殊字符($  `等字符除外)

[root@tlinux shell]# echo '*'
*
[root@tlinux shell]# echo * 输出目录下所有文件
02.sh 03.sh o1hello.sh text.sh

[root@tlinux shell]# x=*
[root@tlinux shell]# echo $x
02.sh 03.sh o1hello.sh text.sh
[root@tlinux shell]# echo "$x"
*
[root@tlinux shell]# echo '$x' 忽略所有特殊字符
$x

反引号:命令替换(将一个命令的标准输出插入到命令的任何位置)

$(): 同样是命令替换

命令替换可以嵌套(如果使用反引号,则内部的反引号必须用反斜杠来转义)  :echo  `basename \`pwd\``       echo $(basename $(pwd))

basename 命令:求路径中最后一项名称

dirname 命令:求路径中路径前面的名称

[root@tlinux shell]# echo `pwd`
/shell
[root@tlinux shell]# echo $(pwd)
/shell
[root@tlinux shell]# basename /hh/aa
aa
[root@tlinux shell]# dirname /hh/aa/bb
/hh/aa
\[root@tlinux shell]# basename `pwd`
shell
[root@tlinux shell]# dirname `pwd`
/
[root@tlinux shell]# echo `basename \`pwd\``
shell
[root@tlinux shell]# echo $(basename $(pwd))
shell

2、算术运算符

基本算术运算符与C语言一模一样

算术扩展:$[] 

[root@tlinux shell]# n=5;echo $[$n+1]
6
[root@tlinux shell]# echo n+1
n+1
[root@tlinux shell]# echo $n+1
5+1

$(())等价于$[]

[root@tlinux shell]# echo $(($n+2))
7
[root@tlinux shell]# echo $(($n*2))
10

(()) :整体表达式 不可赋值   是一个独立的语句

[root@tlinux shell]# ((n+=1))
[root@tlinux shell]# echo $n
6
[root@tlinux shell]# echo ((n+=1))
bash: syntax error near unexpected token `('
[root@tlinux shell]# r=((n+=1))
bash: syntax error near unexpected token `('
[root@tlinux shell]# r=$[$n+1]
[root@tlinux shell]# echo $r
7

expr  :符号两边一定要有空格

[root@tlinux shell]# expr 4 + 5
9
[root@tlinux shell]# r= `expr 4 * 5`
expr: syntax error
[root@tlinux shell]# r=`expr 4 \* 5` *对shell有特殊含义 echo $*
[root@tlinux shell]# echo $r
20

let  是shell内置命令

[root@tlinux shell]# let n=n+_1
[root@tlinux shell]#
[root@tlinux shell]# let n=n+1
[root@tlinux shell]# echo $n
6
[root@tlinux shell]# let "n= n+ 1"
[root@tlinux shell]# echo $n
7
[root@tlinux shell]# let n=n +1
[root@tlinux shell]# echo $n
7
[root@tlinux shell]# let n= n +1
bash: let: n=: syntax error: operand expected (error token is "=")
[root@tlinux shell]# let "n= n+1"
[root@tlinux shell]# echo $n
8

shell编程之算术扩展(引号、命令替换、算术扩展)的更多相关文章

  1. Linux Shell编程(21)——复杂命令

    更高级的用户命令find-exec COMMAND \;在每一个find 匹配到的文件执行 COMMAND 命令. 命令序列以 ; 结束( ";" 是 转义符 以保证 shell ...

  2. shell编程:定义简单标准命令集

    shell是用户操作接口的意思,操作系统运行起来后都会给用户提供一个操作界面,这个界面就叫shell,用户可以通过shell来调用操作系统内部的复杂实现,而shell编程就是在shell层次上进行编程 ...

  3. shell编程必须要掌握的命令-xargs

    一,说xargs命令前,说一下什么是shell编程 什么是shell编程呢,说白了就是按一定的规则把各种命令组织起来,完成一定的事情.纯属个人理解,哈哈.不管是交互式的shell,还是非交互的shel ...

  4. shell编程基础(七): 处理文件命令sed与awk

    一.sed(以行为单位处理文件) sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑 ...

  5. Linux编程 23 shell编程(结构化条件判断 命令if -then , if-then ... elif-then ...else,if test)

    一.概述 在上一篇里讲到了shell脚本,shell按照命令在脚本中出现的顺序依次进行处理,对于顺序操作已经足够了,但许多程序要求对shell脚本中的命令加入一些逻辑流程控制,这样的命令通常叫做 结构 ...

  6. linux shell编程学习笔记(二) --- grep命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  7. Shell 编程-常见的文件处理命令

    touch 命令 touch命令用于创建空文件,例如有时应用程序希望在它们写入数据之前,某个日志文件就已经存在.这时可用touch命令创建一个空文件:touch test1:touch命令还可以用来改 ...

  8. 3.shell编程-文件查找之find命令

    3.1.语法格式 find [路劲][选项][操作] 选项参数对照表 3.2.-name 查找/etc/目录下以.conf结尾的文件 find /etc/ -name "*.conf&quo ...

  9. shell编程 之 test命令

    shell编程里的测试test命令基本可以分为3种数据类型,每种都不一样.个人更倾向于理解为条件语句的写法规则,就是test加条件加判断语句. 1 数值类型 基本可以分为6个判断:-eq等于,-ne不 ...

  10. Shell 编程基础之括号的作用

    一.小括号() 单小括号 命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必 ...

随机推荐

  1. 多测师讲解自动化--rf关键字--断言(下)_高级讲师肖sir

    断言: 1.1Page Should Contain Maximize Browser Window sleep 2 Comment Page Should Contain hao123 #断言当前页 ...

  2. Makefile-4-书写命令

    目录 前言 概念 Chapter 4:书写命令 4.1 显示命令 4.2 命令执行 * 4.3 命令出错 4.4 嵌套执行 make 4.5 定义命令包 参考 前言 本笔记主要记录Makefile一些 ...

  3. 【C语言C++编程入门】——程序结构:构思!

    学习编程语言的最好方法是编写程序.一般来说,初学者编写的第一个程序是一个名为"Hello World"的程序,它简单地将"Hello World"打印到你的电脑 ...

  4. mysql explain 查询处理的结果详解

    本文转自 https://blog.csdn.net/boss_way/article/details/91416887 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这 ...

  5. leaflet实现台风动态轨迹

    leaflet平台是我最新使用的webGIS平台,该平台比较轻巧以下是我展示台风动态路径展示 1.首先为大家展示一下动态台风所使用数据 上面中采用标准json格式数据,data数据中,points是对 ...

  6. centos搭建离线epel源

    准备 有一个联网的机器,并已经配置好epel源 安装reposync和createrepo命令 yum install yum-utils #reposync在这里 yum install creat ...

  7. CDH+Kylin三部曲之二:部署和设置

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. 李志杰的C语言程序设计第一次作业

    这个作业属于C语言程序设计课程 : https://edu.cnblogs.com/campus/zswxy/CST2020-2 这个作业要求在哪里: https://edu.cnblogs.com/ ...

  9. 最新主流 Markdown 编辑器推荐

    Markdown ,2004年由 John Gruberis 设计和开发,是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式,以下将介绍目前比较流行的一 ...

  10. 【2】TensorFlow光速入门-数据预处理(得到数据集)

    本文地址:https://www.cnblogs.com/tujia/p/13862351.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...