2014-06-26 50 views
0

这个问题关于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的新手。谢谢。

回答

3

在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的话题。

+0

非常清楚。感谢这个例子。只要SO允许,我会尽快接受你的回答。 – user3621156

+1

另一点(琐事;-))。这被称为“命令替换”。您经常会看到另一种形式的命令替换,它使用围绕要使用其输出的cmd的单个back-tick字符(在每一端)。 (在S.O.评论中很难说明)。然而,'$(...)'是绝对可取的形式,因为至少从1995年开始,反标记已经在Kornshell中被标记为不推荐使用。 – shellter

+0

@shellter - 绝对!除非你无法避免,否则应避免反引号版本。它很难阅读,也很难嵌套。我认为答案中的问题涉及到这一点。 –

1

$()评估主指令之前括号的内容。