`` 反向单引号   //可以将反向单引号里面的东西当成命令去处理,非常灵活,可以将一个命令的输出打印给另一个命令的参数,$(COMMAND) = `COMMAND`

范例:

[root@centos8 ~]#ll `echo `date +%F`.txt`

-bash: .txt: command not found

ls: cannot access 'date': No such file or directory

ls: cannot access '+%F': No such file or directory

[root@centos8 ~]#ll $(echo $(date +%F).txt)

-rw-r--r-- 1 root root 0 Mar 20 09:55 2020-03-20.txt

[root@centos8 ~]#ll `echo $(date +%F).txt`

-rw-r--r-- 1 root root 0 Mar 20 09:55 2020-03-20.txt

[root@centos8 ~]#ll $(echo `date +%F`.txt)

-rw-r--r-- 1 root root 0 Mar 20 09:55 2020-03-20.txt

 

‘’单引号        //变量不会被替换,强引用,可以屏蔽引号中的特殊符号

“”双引号      //变量值会被替换,弱引用

$                   //表明后面是变量

\                    //转义符   ,可以屏蔽$符号的变量功能,可以将\后面加的字符的功能取消    //也可以表示一个命令没结束

比较:‘’    “”    ``

结论: 单引号,六亲不认,变量和命令都不识别。都当成了普通的字符串

              反向单引号,变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,在交给调用反向单引号的命令继续执行

               双引号,不能识别命令,可以识别变量。

 

列子:

[root@centos8 ~]#echo "echo $HOSTNAME"

echo centos8.localdomain

[root@centos8 ~]#echo 'echo $HOSTNAME'

echo $HOSTNAME

[root@centos8 ~]#echo `echo $HOSTNAME`

centos8.localdomain

 

 

 

 

[09:18:04 root@centos8 data]#echo "This system's name is $(hostname)"

This system's name is centos8.magedu.org

[09:18:55 root@centos8 data]#echo "I am `whoami`"

I am root

[09:15:37 root@centos8 data]#touch $(date +%F).log

[09:16:29 root@centos8 data]#ls

2019-12-13.log

[09:16:31 root@centos8 data]#ll

total 0

-rw-r--r--. 1 root root 0 Dec 13 09:16 2019-12-13.log

[09:16:34 root@centos8 data]#touch `date +%F`.txt

[09:17:14 root@centos8 data]#ll

total 0

-rw-r--r--. 1 root root 0 Dec 13 09:16 2019-12-13.log

-rw-r--r--. 1 root root 0 Dec 13 09:17 2019-12-13.txt

 

 

 

{}的作用

{} 可以实现打印重复字符串的简化形式

范例:

[root@centos8 ~]#echo {000..20..2}

000 002 004 006 008 010 012 014 016 018 020

[root@centos8 ~]#echo {a..z..2}

a c e g i k m o q s u w y

[root@centos8 ~]#echo {A..z}

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i

j k l m n o p q r s t u v w x y z