2014-06-26 87 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

$()評估主指令之前括號的內容。