【问题标题】:Unix `cp` command with $ sign带有 $ 符号的 Unix `cp` 命令
【发布时间】:2014-06-26 15:02:59
【问题描述】:

这个问题是关于 Unix cp 命令的。

$(...) 运算符在下面做什么?

cp $(bundle show bootstrap-sass)/vendor/assets/stylesheets/bootstrap.scss \ app/assets/stylesheets/bootstrap-custom.scss

我从页面上看到了这个符号:https://github.com/twbs/bootstrap-sass#usage

我查看了 cp 的手册页,并没有看到对此操作的任何引用。我是 *nix 的新手。谢谢。

【问题讨论】:

    标签: unix cp dollar-sign


    【解决方案1】:

    在 shell 脚本中,$(...) 执行括号中的命令并将该命令打印到 STDOUT 的文本返回。这也适用于反引号。

    例如:echo $(date) - This is a dated line 将打印类似Thu Jun 26 10:08:20 CDT 2014 - This is a dated line 的内容

    这是另一个关于该主题的Stack Overflow question

    【讨论】:

    • 很清楚。谢谢你的例子。只要允许,我就会接受你的回答。
    • 另外一点(琐事;-))。这被称为command-substitution。您经常会看到另一种形式的命令替换,它使用单个反引号字符(在每一端)围绕要使用其输出的 cmd。 (很难在 S.O. 评论中说明)。但是,$(...) 绝对是首选形式,因为至少从 1995 年起,反引号在 Kornshell 中就被标记为已弃用。
    • @shellter - 绝对!除非您无法避免,否则应避免使用反引号版本。它更难阅读,更难嵌套。我认为答案中链接的问题有点涉及到这一点。
    • @Mr.Llama:是的!嘿,我说很难在 S.O. 中说明。评论,但请注意 O.P. 在标题中的 cp cmd 周围有回击! :-) 。不幸的是,cp 不会将输出返回到标准输出,因此不是 cmd-sub 的好例子。 ;-/ 祝大家好运!
    【解决方案2】:

    $() 在主命令之前计算括号的内容。

    【讨论】:

      猜你喜欢
      • 2014-11-18
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多