Признать псевдонимы в «xargs», я поставил псевдонимБаш псевдонимы в xargs: «Баш -c» не передавать аргументы команды
alias xargs="xargs bash -ic"
Если я теперь выполнить ниже фрагмент кода, никаких аргументов не передается команде xargs.
find . -name pom.xml | xargs grep projectid
Infact, никакие аргументы не передаются команде даже в этом случае.
bash -ic grep projectid pom.xml
Документация Баш говорит
-c If the -c option is present, then commands are read from the first non-option argument command_string. If there are arguments after the command_string, they are assigned to the positional parameters, starting with $0.
Так что я делаю неправильно?
bash --version
GNU bash, version 4.3.39(2)-release (x86_64-unknown-cygwin)
UPDATE:
Благодаря @knittl для его входов. Находите решение, чтобы избежать всех дополнительных прерываний в ответе @ knittl.
1. Скачать xargs_bash_alias.sh
2. Установить псевдоним
alias xargs="<path>/xargs_bash_alias.sh"
Теперь ваши команды xargs признают ваши другие Баши псевдонимов.
'bash -c grep projectid pom.xml' выполняет команду' grep' и имеет позиционные аргументы '$ 0' (projectid) и' $ 1' (pom.xml'). Позиционные аргументы не используются вашей командой. – knittl
Вы знаете, что '' $ * "' неправильно работает для многословных аргументов? – knittl
Я не знаю об этом. Не баш-гуру. У вас есть предложение? –