• Linux命令行扩展和被括起来的集合


    命令行扩展:`` 和 $()

    单引号'' 双引号"" 反向单引号``

    在很多场景下效果不同

    [root@centos8 ~]#echo "echo $HOSTNAME"
    echo centos8.localdomain
    [root@centos8 ~]#echo 'echo $HOSTNAME'
    echo $HOSTNAME
    [root@centos8 ~]#echo `echo $HOSTNAME`
    centos8.localdomain
    

    结论:

    • 单引号:六亲不认,变量和命令都不识别,都当成了普通的字符串 最傻
    • 反向单引号:变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的命令继续 最聪明
    • 双引号:不能识别命令,可以识别变量 介于两者之间

    :$( ) 和 ``

    内部放命令
    因为``反向单引号没办法区分配对,所以$()可以替代从而进行嵌套

    [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 $PATH
    $PATH
    [root@centos8 ~]#echo 
    [root@centos8 ~]#echo \
    
    [root@centos8 ~]#echo \
    [root@centos8 ~]#echo \\
    \
    
    * * * 胖并快乐着的死肥宅 * * *
  • 相关阅读:
    sping AOP核心思想及实现原理
    springmvc RequestMappingHandlerMapping初始化详解
    springmvc RequestMappingHandlerAdapter初始化详解
    POJ 3169 Layout
    POJ 3264
    POJ 3461 Oulipo
    二分图判定 POJ-2492
    最小生成树 prim算法
    初级BFS
    哈夫曼建树
  • 原文地址:https://www.cnblogs.com/bpzblog/p/13139410.html
Copyright © 2020-2023  润新知