Я хочу загрузить исполняемый файл и выполнить его за один шаг, предоставив аргументы для исполняемого файла.
Мне удалось выяснить, чтобы загрузить + выполнить, используя канал:
wget -O - http://xrl.us/cpanm | perl
Это выполняет исполняемый файл cpanm
через perl
.
Теперь я хочу добавить аргумент, скажем A
:
wget -O - http://xrl.us/cpanm | perl A
Это больше не работает. Я сейчас получаю Cannot write to ‘-’ (Success).
.
Как это можно сделать?
Вы можете поместить аргументы скрипта perl после programname
, что в данном случае является стандартным вводом (-
). Итак, я думаю, это то, что вы спрашиваете:
wget -O - http://xrl.us/cpanm | perl -- - A
или
wget -O - http://xrl.us/cpanm | perl -- - --help
См. man-страницу perlrun для более подробной информации.
Примечание: На странице руководства:
A "-" сигнализирует об окончании опций и отключает дальнейшую обработку опций. Любые аргументы после «-» рассматриваются как имена файлов и аргументы.
Другими словами, --
завершает аргументы perl . После этого мы помещаем имя файла, содержащего сценарий (в нашем случае это стандартный ввод, обозначенный -
), а затем аргументы сценария.