为什么在这个语句中使用 xargs

Why is xargs used in this statement

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

aws configure set varname value

我遇到了以下脚本:

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

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

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

xargs 你从 man construct argument list(s) and execute utility

那里知道的

此处它将把 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 的输出作为参数列表有效