命令替换的两种方式$()和``

来源:互联网 发布:日本汽车出口数据 编辑:程序博客网 时间:2024/05/22 00:32
  • 命令替换的含义
    命令替换是指将命令的输出作为命令替换的位置的文本
    命令替换的一般作用是抽取一个命令的输出, 然后使用=操作赋值到一个变量供以后使用。
  • 命令替换的两种方式
    1 .“(反引号,电脑键盘Esc下面的那个键)
    使用如下图:
    这里写图片描述

    这里写图片描述
    2 . $()命令
    使用如下图:
    这里写图片描述
    结果同“的结果相同。

  • $()和“两种命令替换的异同以及优缺点

    “方式 对于类似上述简单的命令来说与$()来说没有太大的区别,但是我们来看看下面的栗子。命令中又转义会怎么样呢?
    栗:采用grep命令在文件中找出包含\的行。
    情景1:
    这里写图片描述
    这里写图片描述
    -F的作用是不使用正则表达式 因为\也是grep正则表达式的转义符,所以不使用-F的情景如下。
    情景2:
    这里写图片描述这里写图片描述
    我们发现上述两种情况下$()都可以运行出正确的结果,但使用反引号情景1会出现bash报错,因为\也是反引号的正则表达式的转义符。情景二中grep会报错,同样是因为 因为\也是grep正则表达式的转义符,所以两种情况下都会出错。并且错误很难调试。
    情景三:正确使用反引号的情况
    这里写图片描述这里写图片描述
    上述虽然可以正确的执行出结果,但是由于\是反引号和”“和grep的正则表达式的转义符所以导致的结果是由8个, 太可怕了。所以为了避免类似的错误我们尽可能的使用$()来进行命令替换。

原创粉丝点击