码迷,mamicode.com
首页 > 系统相关 > 详细

Linux Shell 常用命令

时间:2018-11-07 17:44:35      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:img   分隔符   子shell   脚本   echo   输出   com   image   原来   

Linux Shell 中的反引号,单引号,双引号的区别

1.反引号位 (`):在Linux中起着命令替换的作用。命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。

和$()是一样的。在执行一条命令时,会先将其中的 `` ,或者是$() 中的语句当作命令执行一遍,再将结果加入到原命令中重新执行,

例如:echo `ls`

会先执行 ls 得到 xx.sh等,再替换原命令为:echo xx.sh

[root@localhost ~]# echo today is $(date "+%Y-%m-%d")
today is 2017-11-07
[root@localhost ~]# echo today is `date "+%Y-%m-%d"`
today is 2017-11-07
注意:
[root@localhost ~]#  echo Linux `echo Shell `echo today is `date "+%Y-%m-%d"```
Linux Shellecho today is 2017-11-07     #过多使用``会有问题
[root@localhost ~]# echo Linux `echo Shell $(echo today is $(date "+%Y-%m-%d"))`
Linux Shell today is 2017-11-07    ``和$()混合使用
[root@localhost ~]# echo Linux $(echo Shell $(echo today is $(date "+%Y-%m-%d")))
Linux Shell today is 2017-11-07    #多个$()同时使用也不会有问题


注释:反引号与$()都是命令替换 

最大的区别为:转义字符的使用不同。 
反引号中:若要使用转自字符需要\\ 
$()中:若要使用转义字符用\

例1:反引号使用1个\,$()使用1个

技术分享图片

技术分享图片

例2:反引号使用2个\,$()使用1个

技术分享图片

技术分享图片

 

2.单引号he双引号

首先, 单引号和双引号,都是为了解决中间有空格的问题。

因为空格在linux中时作为一个很典型的分隔符,比如 string1=this is a string,这样执行就会报错。

为了避免这个问题,因此就产生了单引号和双引号。他们的区别在于,单引号将剥夺其中的所有字符的特殊含义,而双引号中的 ‘ $ ‘(参数替换)和‘ ` ‘(命令替换)和 ‘ \ ‘是例外。所以,两者基本上没有什么区别,除非在内容中遇到了参数替换符$和命令替换符`。

所以下面的结果:
        num=3
        echo ‘$num’
        $num
        echo “$num”
        3

        所以,如果需要在双引号””里面使用这两种符号的直接含义,需要用反斜杠转义

 

摘取于:https://www.cnblogs.com/yasmi/articles/5129571.html

3.大括号、花括号 { }

大括号拓展。将对大括号中的文件名做扩展

第一种:对大括号中的以 逗号分割的文件列表进行拓展。如 touch {a,b}.txt 结果为a.txt b.txt。

第二种:对大括号中以点点(..)分割的顺序文件列表起拓展作用,如:touch {a..d}.txt 结果为a.txt b.txt c.txt d.txt

技术分享图片

4.双中括号[[ ]] 

技术分享图片

5.单小括号 ()

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

②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。有些shell不支持,如tcsh。

③用于初始化数组。如:array=(a b c d)

6.单中括号 []

Test和[]中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq,-gt这种形式。无论是字符串比较还是整数比较都不支持大于号小于号。如果实在想用,对于字符串比较可以使用转义形式,如果比较"ab"和"bc":[ ab \< bc ],结果为真,也就是返回状态为0。[ ]中的逻辑与和逻辑或使用-a 和-o 表示。

7${ }变量替换

一般情况下,$var与${var}是没有区别的,但是用${ }会比较精确的界定变量名称的范围

[root@hadoop000 WorkPath]# A=linux
[root@hadoop000 WorkPath]# echo $AB   #输出为空

[root@hadoop000 WorkPath]# echo ${A}B  # 精准的界定范围
linuxB
[root@hadoop000 WorkPath]#

 

更多详细介绍 :http://www.cnblogs.com/chengd/p/7803664.html

8.布尔运算符

 

Linux Shell 常用命令

标签:img   分隔符   子shell   脚本   echo   输出   com   image   原来   

原文地址:https://www.cnblogs.com/yunshenbuzhichu/p/9923849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!