为什么在此语句中使用xargs

时间:2019-07-08 06:24:33

标签: bash xargs

我正在使用以下语法与名为configure的AWS CLI命令进行交互:

aws configure set varname value

我遇到了以下脚本:

aws configure set environment $(echo $ENV | xargs)

我知道这会将environment varname设置为$ENV的输出。

为什么echo命令将其输出管道传输到xargs?我已经阅读了手册页,但是不知道它在做什么。

1 个答案:

答案 0 :(得分:1)

您从男人construct argument list(s) and execute utility那里得知的

xargs

在这里它将把echo $ ENV的输出格式化为参数列表,而不是行,以演示如何在Linux机器上尝试这些命令

env | xargs

输出将采用以下格式

rvm_script_name= rvm_sdk= rvm_silent_flag= rvm_sticky_flag= rvm_system_flag= rvm_use_flag= rvm_user_flag= rvm_ruby_string=ruby-2.3.0 _=/usr/bin/env

然后尝试

env

输出将是这样

rvm_system_flag=
rvm_use_flag=
rvm_user_flag=
rvm_ruby_string=ruby-2.3.0
_=/usr/bin/env

因此它通过删除新行来准备命令echo $ENV的输出作为参数列表有效。