Почему xargs используется в этом утверждении - PullRequest
0 голосов
/ 08 июля 2019

Я взаимодействую с командой CLI AWS под названием configure со следующим синтаксисом:

aws configure set varname value

Я встречал следующий скрипт:

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

Я знаю, что это устанавливает environment varname на выход $ENV.

Почему echo командует, передавая свой вывод на xargs?Я прочитал справочную страницу, но не понимаю, что он делает.

1 Ответ

1 голос
/ 08 июля 2019

XARGS, как вы знаете от человека 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 к действию в виде списка аргументов, удаляя новые строки

...