Прямо сейчас у меня есть одна строка, как это:
curl -fsSL http://git.io/vvZMn | bash
Он загружает скрипт и передает его в bash как файл stdin. Я хотел бы запустить этот скрипт с дополнительным аргументом print
.
Может как то так?
curl -fsSL http://git.io/vvZMn | bash -- print
Но это не работает.
print
здесь сделать? Показать команды, которые выполняются? Если так, попробуйтеbash -x
. Примечание: этаcurl | bash
процедура - огромная дыра в безопасности; вы не увидите, что будет запущено до тех пор, пока ваш сервер не будет запущен.Ответы:
Я считаю, что вы ищете
-s
вариант. С помощью-s
вы можете передать аргументы скрипту.В качестве фиктивного примера, чтобы проиллюстрировать это:
Здесь вы можете видеть, что сценарию, предоставленному в stdin, присвоен позиционный параметр
Print
. Ваш скрипт принимает-u UUID
аргумент, который также может быть учтен:Итак, в вашем случае:
Или,
Как отметил Стивен Харрис, загрузка скрипта и его выполнение, незаметное зрение, является проблемой безопасности.
источник
Если ваша система имеет
/dev/stdin
, вы можете использоватьВы не делать этого:
Если вы хотите использовать
--
, сделайте это:источник