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