为什么在这个语句中使用 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
的输出作为参数列表有效
我正在使用以下语法与名为 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
的输出作为参数列表有效