Curl

了解 Dockerfile 中 curl 命令的變數佔位符

  • August 21, 2018

我正在學習 Dockerfile,之前沒有使用過 curl。

我試圖理解這個 Dockerfile中的第 26 行。

&& bash -c 'curl "https://nodejs.org/dist/$(<.node_version.txt)/node-$(<.node_version.txt)-linux-x64.tar.gz" > /home/meteorapp/meteorapp/build/required-node-linux-x64.tar.gz' \

是否$(<.node_version.txt)意味著我必須提出一些文本作為它期望的值,或者它按原樣使用,是命令的一部分?

這意味著您需要有一個名為.node_version.txt. 在該文件中應該是您想要的節點的版本號。例如:v4.6.0latest。要查看有效的版本字元串,請訪問https://nodejs.org/dist/

發生的事情是這個結構$(<.node_version.txt)被文件的內容替換了。

這條線

https://nodejs.org/dist/$(<.node_version.txt)/node-$(<.node_version.txt)-linux-x64.tar.gz

變成

https://nodejs.org/dist/v4.6.0/node-v4.6.0-linux-x64.tar.gz

該構造是命令替換$(<filename)的一種特殊變體。它實際上相當於.$(cat filename)

引用自:https://unix.stackexchange.com/questions/313614