首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Dockerfile字符串插值剂量功

Dockerfile字符串插值剂量功
EN

Stack Overflow用户
提问于 2019-08-27 06:49:54
回答 1查看 59关注 0票数 0

我一直在尝试使用下面的命令运行Dockerfile

代码语言:javascript
运行
复制
RUN NODE_VERSION=$( \
    curl -sL https://nodejs.org/dist/latest/ | \
    tac | \
    tac | \
    grep -oPa -m 1 '(?<=node-v)(.*?)(?=-linux-x64\.tar\.xz)' | \
    head -1 \
) \
&& echo $NODE_VERSION \
&& curl -SLO "https://nodejs.org/dist/latest/node-v$NODE_VERSION-linux-x64.tar.xz" -o "node-v$NODE_VERSION-linux-x64.tar.xz" \
&& curl -SLO "https://nodejs.org/dist/latest/SHASUMS256.txt.asc" \
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
&& grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt

但是,由于某些原因,我看到echo $NODE_VERSION输出了版本详细信息,但是NODE_VERSION详细信息在随后的curl命令中不可用。会出什么问题呢?

EN

Stack Overflow用户

回答已采纳

发布于 2019-08-27 08:00:24

分配给$NODE_VERSION的输出似乎包含一个换行符,这将导致大多数命令出错。

您可能希望从输出中去掉换行符。类似于下面的内容:

代码语言:javascript
运行
复制
NODE_VERSION=$( \
    curl -sL https://nodejs.org/dist/latest/ | \
    grep -oPa -m 1 '(?<=node-v)(.*?)(?=-linux-x64\.tar\.xz)' | \
    head -1 | \ 
    tr -d '\r\n' \
) 

现在应该不需要换行符就可以得到输出了。我删除了tac | tac,因为它似乎是多余的。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57665787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档