Как вы можете wget файл и выполнить его напрямую, давая аргументы?

Я хочу загрузить исполняемый файл и выполнить его за один шаг, предоставив аргументы для исполняемого файла.

Мне удалось выяснить, чтобы загрузить + выполнить, используя канал:

wget -O - http://xrl.us/cpanm | perl

Это выполняет исполняемый файл cpanm через perl.

Теперь я хочу добавить аргумент, скажем A:

wget -O - http://xrl.us/cpanm | perl A

Это больше не работает. Я сейчас получаю Cannot write to ‘-’ (Success)..

Как это можно сделать?

2
задан 7 June 2019 в 11:43

1 ответ

Вы можете поместить аргументы скрипта perl после programname, что в данном случае является стандартным вводом (-). Итак, я думаю, это то, что вы спрашиваете:

wget -O - http://xrl.us/cpanm | perl -- - A

или

wget -O - http://xrl.us/cpanm | perl -- - --help

См. man-страницу perlrun для более подробной информации.

Примечание: На странице руководства:

A "-" сигнализирует об окончании опций и отключает дальнейшую обработку опций. Любые аргументы после «-» рассматриваются как имена файлов и аргументы.

Другими словами, -- завершает аргументы perl . После этого мы помещаем имя файла, содержащего сценарий (в нашем случае это стандартный ввод, обозначенный -), а затем аргументы сценария.

2
ответ дан 7 June 2019 в 11:43

Другие вопросы по тегам:

Похожие вопросы: