zoukankan      html  css  js  c++  java
  • 学习 Shell —— 括号、引号

    0. 引号

    单引号、双引号、飘号( ` ,英文状态下的键盘上的波浪号)

    • 单引号不解析变量
    • 双引号会解析变量,用的较多
    • 飘号是执行内容,类似于$(…)
    [root@hadoop0 ~]# echo $(date)
    Sat Mar 12 17:26:28 EST 2016
    [root@hadoop0 ~]# echo `date`
    Sat Mar 12 17:27:44 EST 2016

    1. 大括号

    touch {a,b}.txt ⇒ a.txt b.txt
    touch {a..d}.txt ⇒ a.txt b.txt c.txt d.txt

    2. 小括号

    • $(cmd)和符号cmd(注意这不是单引号,在美式键盘上,`是ESC下面的那个键)有相同之处
    • shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令echo $(ls)中的$(ls)位置,即替换了$(ls),再执行echo命令。
    $ ls
    a b
    $ echo $(ls)
    a b
    $ echo `ls`
    a b

    3. 小括号与大括号的区别:

    • ()和{}都是对一串的命令进行执行,但有所区别:
      • ()只是对一串命令重新开一个子shell进行执行
      • {}对一串命令在当前shell执行
      • ()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开
      • ()最后一个命令可以不用分号
      • {}最后一个命令要用分号
      • {}的第一个命令和左括号之间必须要有一个空格
      • ()里的各命令不必和括号有空格
      • ()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令

    4. 括号辨异

    • shell中各种括号的作用()、(())、[]、[[]]、{}

      • 大括号:
        • touch {a,b}.txt ⇒ a.txt b.txt
        • touch {a..d}.txt ⇒ a.txt b.txt c.txt d.txt
      • 小括号:
        • $(cmd)和符号cmd(注意这不是单引号,在美式键盘上,是ESC下面的那个键)有相同之处 </li>
          <li>shell扫描一遍命令行,发现了
          $(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令echo $(ls)中的$(ls)位置,即替换了$(ls)`,再执行echo命令。
      $ ls
      a b
      $ echo $(ls)
      a b
      $ echo `ls`
      a b
      • 小括号与大括号的区别:

        • ()和{}都是对一串的命令进行执行,但有所区别:
          • A,()只是对一串命令重新开一个子shell进行执行
          • B,{}对一串命令在当前shell执行
  • 相关阅读:
    分母为0一定会抛异常吗?
    [译]Zookeeper的优点与局限性
    明明有class为什么还是报ClassNotFoundException?
    广告倒排索引架构与优化
    KafkaProducer源码分析
    Kafka服务端之网络连接源码分析
    Sublime常用快捷键
    sublime主题设置
    Sublime前端插件
    安装软件,更新软件,删除软件
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421108.html
Copyright © 2011-2022 走看看